覚醒 vs. スタート
Unity の API をスクリプト化すると、一連の初期化関数が提供されます。
初期化関数は、スクリプトのライフサイクルの開始時に呼び出される関数です。
Unity の初期化関数は 'Awake' と 'Start' です。
'Awake' 対 'Start'
'Awake' と 'Start' の違いは、実行順序と実行条件です。
関数 'Awake' は、スクリプトが有効かどうかに関係なく最初に実行され、関数 'Start' はスクリプトが有効な場合にのみ実行されます。どちらの関数も、最初の 'Update' メソッドの前に実行されます。
void Awake()
{
Debug.Log("Awake runs first");
}
void Start()
{
Debug.Log("Start runds second");
}
関数 'Start' はコルーチンにすることもできます ('void' を 'IEnumerator' に置き換え、'yield' パラメーターを追加することで) が、関数 'Awake' はコルーチンにすることができません。
IEnumerator Start()
{
//Wait 1 second before running the next code
yield return new WaitForSeconds(1);
Debug.Log("Start");
}
取り除く
どちらの関数も初期化目的 (プライベート変数の割り当て、ゲーム オブジェクトの生成など) に役立ち、組み合わせて使用すると、さまざまなシナリオの実装に役立ちます。