unity : script実行順序を指定

unityのscriptでStart()、Update()などのイベント関数がどのフレームで呼ばれるかはUnity側で決まっていますが、異なるスクリプト間で、どのスクリプトのStart()が先に呼ばれるかまでは決まっていません。
しかし、scriptの実行順を指定したい時があります。このような時に使えるテクニックです。

実際には、順番を指定できるのはMonoBehaviourを継承しているスクリプトという制限はありますが、順番指定ができるのはありがたいです。

How to

[Edit] -> [Project Settings] -> [Script Execution Order]から、指定します。
『Script Execution Order』ウィンドウでの設定はシンプルで、[+]を押して表示されたスクリプト一覧から、順番指定したいスクリプトを実行したい順に並べるだけ。並べ替えは、ドラッグ & ドロップです。
『Default Time』が基準で、それより早く処理を行いたいならその上に、遅く処理を行いたいならその下に移動させます。

もちろん、全てのスクリプトを指定する必要はありません。
スクリプト名の右にある数字は実行順を表したもので、少ない数字から実行されます。この数字はUnity側で割り振ってくれるので、私たちは順番だけ決めればOK。ここで指定しなかったスクリプトは『Default Time』内で実行されます。この時、順番の保証はありません。

ちなみに、scriptをnamespaceで区切った場合(例えば、SCENE_DEMO)、scriptは、下図のように、SCENE_DEMO.udp_receiveのように出てくるので、気をつけてください。

画像1


もしよろしければ、サポートをお願いします! 頂いたサポートは、Creatorとしての活動費に充てさせて頂きます。