スクリプトのインスタンスがロードされたときに呼び出されます
Awake はゲームが始まる前に変数やゲーム状態を初期化するために使用します。
Awake はスクリプトのインスタンスが生存している間、一度だけ呼び出されます。
Awake 関数はすべてのオブジェクトのインスタンス生成後に呼び出されるので、例えば GameObject.FindWithTag()などを使って他のオブジェクトを安全に参照できます。
Awake 関数の呼び出しはランダムオーダーで行われますので、Awake 関数でのオブジェクトの参照は行っても、情報の取得は行わないようにしましょう。参照先の Awake 関数の処理が終わっていない可能性があるからです。情報の取得は Start 関数で行うようにします。また、スクリプトのインスタンスが無効の場合でも呼び出されます。
Awake 関数は常にすべての Start 関数より先に呼び出されます。これによりスクリプトの初期化の順番を制御できます。
Awake はコルーチンとして動作しません。
C# および Boo ユーザーへの注意:コンストラクターの代わりに Awake を使用してください。これはコンポーネントの serialized ステートはコンストラクト時点では定義されていないためです。
Awake はコンストラクター同様に呼び出しは一回のみです。
private var target : GameObject;
function Awake () { target = GameObject.FindWithTag ("Player"); }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { private GameObject target; void Awake() { target = GameObject.FindWithTag("Player"); } }
Awake はコルーチンにすることはできません。