Unity Manualには、Script関数の呼び出し順序が記述されています。しかし、GameObject自体がUnityで考慮される順序に関するルールがあるかどうかは疑問でした。UnityのGameObject更新命令
GameObjectsは、基本的にUnityのシーングラフのノードであり(シーン自体がルートノードであると仮定して)、ツリーを形成します。私はそのツリー構造がGameObjectsが考慮される順序に何らかの規則を課しているのか疑問に思っていました。
Awake()
は、常に最初にUpdate()
を呼び出す前に呼び出されるStart()
の前に常に呼び出されると記載されています。しかしながら、これらの関係は、(ほとんど)単一のGameObject上の単一のスクリプトの範囲内で与えられる。シーン内のすべてのGameObjectにStart()
(または他の方法)が呼び出される順序を示すルールがあるかどうかを知りたいと思います。
は具体的に私が知りたいと思った:
- が子どもである前に、常に考慮両親はありますか?
- 兄弟は、シーングラフに表示されているのと同じ順序で検討されていますか?
- Script Execution Orderは、単一のGameObjectのスコープ内でのみ実行されますか、それともすべてのGameObjectsを考慮していますか?
ほとんどのオブジェクト、スクリプト、子供の基本的な設定で簡単に答えを得ることができたと伝えました。今は私の質問が来ています。なぜなら、これはかなり簡単な答えである些細な問題ですから、なぜ尋ねるのですか? – Everts
何年もの間私を傷つけていた問題で、最終的には落としてそれをテストしたので、私はSOに関する文書化された答えを見つけることができなかったので、分かち合う価値があると思った。私はそれが前に多くの人々の頭痛を引き起こしたと確信しています、特に事実は、シーンを再読み込みで変更することができます。私が昨晩閉じたときに働いたように、なぜ今日は働いていないのですか? –
私は、オブジェクトBの前にオブジェクトAが必要な場合、関係があるのでUnityアップデートシステムにもう依存できず、AはBにコールしなければならないと言っています。リロードすると、次回は間違っている可能性があることを知っているので、Unity Updateに依存し続けていると、ある日失敗すると、あなたはそれをやり遂げます。 – Everts