覚醒 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");
    }

取り除く

どちらの関数も初期化目的 (プライベート変数の割り当て、ゲーム オブジェクトの生成など) に役立ち、組み合わせて使用​​すると、さまざまなシナリオの実装に役立ちます。