【Unity】 スクリプトの処理順番の設定

小ネタ。

MonoBehaviourを継承したスクリプトは、Unityのシステムの根幹部分から
AwakeやStart、Updateといったメソッドが呼ばれるようになっているが、
その処理順番がどうなっているかはこちらでは分からない。

だがこちらでその順番を設定することは出来る。


Project SettingsのScript Execution Orderがそれだ。




+ボタンでスクリプトを追加して、ドラッグ&ドロップか実際に数値を設定するかで
処理順番を設定出来る。

ここで設定されていないものは、まとめてDefault TimeというUnity内部で設定された順番で
処理される。




上の例で行くと、例えばMySample1のAwakeやStart、Updateが他のどのスクリプトよりも
先に実行され、MySample2は最後に実行される。


例えばプレイヤーを入力によって動かしたい場合、一般に入力を取得するコンポーネントと
それを見るプレイヤーのコンポーネントは別に用意するが、
入力の方が後に処理されてしまうと、プレイヤーの反応は実際には次のフレームになってしまい、
1フレーム遅れて反映されてしまう。

なので、入力側は他のスクリプトよりも早く処理されるべきなので、
そういった時にこの設定が役に立つ。


処理順番は意外とというかかなり重要な部分なので、
闇雲にスクリプトを作る前にきちんと処理の流れを考えておくのも忘れないでおこう。

[ 2013年12月07日 10:32:48 : Unity ]

カレンダー

プルダウン 降順 昇順 年別

06月 | 2020年07月 | 08月
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -


全記事表示リンク

全ての記事を表示する

検索フォーム

リンク