しゅみぷろ

プログラミングとか

イベント関数について

ちょっとしたメモ。Unity界隈では常識なのかもです(よく知らない)。

MonoBehaviourを継承したクラスAがあって、Aを継承したクラスBがあったとして

class A : MonoBehaviour{
  void Awake(){ Debug.Log("Class A awake.");}
  void Start(){ Debug.Log("Class A start.");}
}
class B : A{
  void Awake(){ Debug.Log("Class B awake.");}
}

これで、Bをゲームオブジェクトにアタッチしてログを取ると

Class B awake
Class A start

って表示されるっぽい。 継承関係にあるクラスでイベント関数名が衝突した時、ゲームオブジェクトにアタッチした型のイベント関数が優先して呼ばれてました。