MonobehaviourのMethod呼び出し順序
改めて確認。
- Awake
- Start
- Update
- LateUpdate
- FixedUpdate
- OnGUI
にログを仕込んでPlayしてみる。
- Awake
- Playした直後一番最初に呼ばれる
- Start
- Awakeの次。最初のUpdateの直前に一回だけ呼ばれる
- Update
- 毎フレーム呼ばれる
- LateUpdate
- 毎フレーム、Updateの後に呼ばれる
- FixedUpdate
- 一定間隔で呼ばれる。1フレーム中に何回も呼ばれることがある
- OnGUI
- 不定期に呼ばれる?1フレーム中に何回も呼ばれることがある
という結果になった。
GameObject間での呼び出し順序。
2つのGameObjectをつくって上記Methodの呼び出し順序を見てみると、
- GameObjectA::Awake
- GameObjectB::Awake
- GameObjectA::Start
- GameObjectB::Start
- GameObjectA::FixedUpdate
- GameObjectB::FixedUpdate
- GameObjectA::Update
- GameObjectB::Update
いかA,B,A,Bで。つまり、全GameObjectのUpdateが終わった後に全GameObjectのLateUpdateが呼ばれる。
あるGameObjectにアタッチされたScript間での順序は見てない(が、特にルールは無かった記憶がある、情報元は忘れたが...)
GameObjectの親子間でのそれぞれのスクリプトの実行順序も見ていない(これもルール無かった気がするが...)