我在Unity中继承有些麻烦。我有两个班,一个名叫愤怒,一个叫Emotion,愤怒继承Emotion。
情感看起来像这样:
public abstract class Emotion : MonoBehaviour {
public abstract void initialize(float _strength, float _flux, UMAExpressionPlayer umaExpression);
public abstract void emote();
public void initialize(float _strength, float _flux, float _duration, UMAExpressionPlayer _umaExpression){
initialize(_strength, _flux, _umaExpression);
}
void Update()
{
}
}
愤怒看起来像这样:
public class Angry : Emotion {
public override void initialize(float _emotion_strength, float _flux, UMAExpressionPlayer _umaExpression) {
}
public override void emote()
{
}
}
现在问题。实例化Angry始终返回null。即(new Angry()== null)总是返回true。 但是如果我从MonoBehaviour中删除继承,即从Emotion中删除“:MonoBehaviour”,这就不再是这种情况了,我得到了一个愤怒的例子。为什么是这样?我在这里缺少什么?
答案 0 :(得分:0)
原来是因为我正在使用" new()"。当继承MonoBehaviour时,我必须使用AddComponent。