ターン-UnityでのAwakeとStartの違い



Turn Difference Between Awake



Unityの学習が正式に開始されました。もちろん、最初に遭遇する問題は、アウェイクとスタートの問題です。私は以前にインターネットで2つの違いを確認しました。私は単にそれを思い出し、2つの違いを知っていると思いました。しかし、実際に使ってみると、両者の違いがわかりましたが、まだわかりません。最も重要なのは、Unityのソースコードがないため、ドキュメントや他の人のブログでしか理解できないということです。 。もちろん、一つの方法は自分で実験をすることです。練習は真実をテストするための唯一の基準です。




最後に、AwakeとStartの類似点と相違点を要約します。 同じ点:1)オブジェクトが初期化されるときに両方が呼び出されます。どちらも更新前です。シーン内のオブジェクトが生成された後にAwakeが呼び出され、Awakeが呼び出された後にStartが呼び出され、すべてのStartが呼び出された後にUpdateが開始されます。2)両方とも、オブジェクトの存続期間中に1回だけ呼び出されます。つまり、初期化中に呼び出され、再アクティブ化された後も再度呼び出されることはありません。差:1)Awake関数は、オブジェクトが初期化された直後に呼び出されます。つまり、オブジェクトが初期化された後に呼び出される最初の関数はAwakeであり、オブジェクトが初期化された後、最初のUpdateの前にStartが呼び出されます。Startでの初期化は、他のカスタム関数によってプリエンプトされる可能性があるため、あまり安全ではありません。2)オブジェクトがアクティブであるかどうか、スクリプトが有効であるかどうかに関係なく、アウェイクが呼び出されます。オブジェクトがSetAcive(false)またはenabled = falseの場合、とにかく呼び出されて開始すると言えます。と呼ばれる。