2017-03-20 20 views
-1

Unityで継承に問題があります。 Angryが感情を継承する2つのクラス、1つはAngryと呼ばれ、もう1つはEmotionと呼ばれます。問題に今Unity MonoBehaviourを継承する抽象オブジェクトから継承する

public class Angry : Emotion { 

    public override void initialize(float _emotion_strength, float _flux, UMAExpressionPlayer _umaExpression) { 

    } 

    public override void emote() 
    { 

    } 
} 

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() 
    { 

    } 
} 

そして怒っている次のようになります。

感情は、次のようになります。怒りのインスタンス化は常にnullを返します。私。 (新しいAngry()== null)は常にtrueを返します。 しかし、私がMonoBehaviourから継承を削除した場合、つまりEmotionから「MonoBehaviour」を削除した場合、これは中止され、Angryのインスタンスが取得されます。どうしてこれなの?私はここで何が欠けていますか?

答えて

0

私は "new()"を使っているからです。 MonoBehaviourが継承されているときはAddComponentを使う必要があります。

関連する問題