Unity继承自继承MonoBehaviour的抽象对象

时间:2017-03-20 14:40:36

标签: c# inheritance unity3d

我在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”,这就不再是这种情况了,我得到了一个愤怒的例子。为什么是这样?我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

原来是因为我正在使用" new()"。当继承MonoBehaviour时,我必须使用AddComponent。