[Unity]Startイベントの継承の振る舞い
目次
実装方法
Startイベントをそれぞれ実装
派生クラスだけゲームオブジェクトにアタッチします
基本クラス
プロジェクトウィンドウに置いたまま
サンプルの基本クラスは全て同じ
using UnityEngine;
public abstract class MobStatus : MonoBehaviour
{
protected virtual void Start()
{
Debug.Log("基本クラス");
}
}
派生クラス
ゲームオブジェクトにアタッチ
サンプルの派生クラスは全て同じ
using UnityEngine;
public class PlayerStatus : MobStatus
{
private void Start()
{
Debug.Log("派生クラス");
}
}
結果
派生クラス
Startイベントをそれぞれ実装、ただし派生クラスのStartイベントは空
基本クラス
using UnityEngine;
public abstract class MobStatus : MonoBehaviour
{
protected virtual void Start()
{
Debug.Log("基本クラス");
}
}
派生クラス
using UnityEngine;
public class PlayerStatus : MobStatus
{
private void Start()
{
}
}
結果
表示なし
Startイベントをそれぞれに実装、派生クラスに基本クラスのStartイベントを呼ぶステートを記述
基本クラス
using UnityEngine;
public abstract class MobStatus : MonoBehaviour
{
protected virtual void Start()
{
Debug.Log("基本クラス");
}
}
派生クラス
using UnityEngine;
public class PlayerStatus : MobStatus
{
private void Start()
{
base.Start();
Debug.Log("派生クラス");
}
}
結果
基本クラス
派生クラス
Startイベントを基本クラスに実装、派生クラスは空
基本クラス
using UnityEngine;
public abstract class MobStatus : MonoBehaviour
{
protected virtual void Start()
{
Debug.Log("基本クラス");
}
}
派生クラス
using UnityEngine;
public class PlayerStatus : MobStatus
{
}
結果
基本クラス
考察
派生クラスのStartイベントを空実装した時、基本クラスのStartイベントは実行されません
派生クラス自体を空とした場合、基本クラスのStartイベントは実行されます
ディスカッション
コメント一覧
まだ、コメントがありません