2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Unity AwakeとStartとOnEnableの呼ばれる順番

Last updated at Posted at 2021-05-30

##0.0 はじめに
Awake() OnEnable() Start()が実行される順番を調べてみた。

##1.0 呼び出される順番
Awake() → OnEnable() → Start()

##1.1 Awake()
シーンが始まるとすぐに呼び出されます(スクリプトのインスタンスがロードされたとき)。なのでStartより先に呼ばれます。参照先のAwakeの処理が終わってない可能性がある為、参照からの値の取得は注意が必要です。オブジェクトが有効でないと呼ばれません。また1回だけしか呼び出されません。

##1.2 Start()
最初のフレームにて呼び出される。Updateの1フレーム前で呼ばれます。
オブジェクトが有効でないと呼ばれません。また1回だけしか呼び出されません。

##1.3 OnEnable()
名前の通りブジェクトがSetActive(true)などで有効(アクティブ)になったときに呼び出されます。
他とことなり何回でも呼ばれます。(もう一度オブジェクトがアクティブになったときにも呼ばれます)
Awakeより後、Startより先に呼ばれます。

ちなみに非アクティブになった時に呼ばれる関数はOnDisable()です。こちらはゲームスタート時(最初に再生した時)に非アクティブでも呼ばれないので注意が必要です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?