この文は何らかの形で混乱します。
awake、OnEnableおよびUpdate は常にと呼ばれます。
1.この文脈で「任意」とは何ですか?ランダムですか?
はい、そのランダム。ただし、ではなく、で、Awake、OnEnable、Updateの各機能について説明しています。スクリプトについて話しています。スクリプトはランダムに選択して実行します。
2.Doesが、これもアウェイク()と一緒にスタートを()が含まれ、または[スタート]()はその順序がに変更された場合でも、スクリプト 実行順序に従わない独自の特別な行動を持っていませんプロジェクト を設定しますか?
回答#1は質問#2にも回答する必要があります。 これは、Start()Awake()やOnEnable()などのコールバック関数には影響しません。
私はUnityがそれ 実行は、それが何かのように思える、特に以来 時間が、それはクラッシュを引き起こしたり、時間の残りの一部を動作するとき、それがどのように動作するかを「決定」する方法しばらくの間、不思議に思っていました 少しでもない説明
はい、これは該当します。これは私にも過去に起こったことです。これは、多くのスクリプトを含む大規模なプロジェクトがある場合に起こりがちです。スクリプトはランダムに呼び出されます。 GetComponent
が機能しなくなったため、null例外エラーが発生することがあります。このため、Script Execution Order Settingsが作成され、スクリプトの実行順序をいつでも設定できるようになります。
このような問題を解決するには、GetComponent
をコルーチン関数で実行する必要があります。その後、nullかどうかをチェックします。 nullの場合は、1フレーム待ってからGetComponent
をもう一度試してください。
これもまた、コールバック関数が呼び出され/呼び出される順序ではなく、スクリプトが実行される順序に適用されます。
これらの方法でいくつかのデバッグ出力を設定してゲームスクリプトを実行すると、 'Awake'が何かを出力し、' Start'が何か他のものを表示し、最初 – Martin
http://answers.unity3d.com/questions/217941/onenable-awake-start-order.html – Everts
4年半前のバグがこの質問に関連するかどうかわからない – DisturbedNeo