MonoBehaviour の Unity イベント (Awake, Update等) は保証されておらず
環境によって動作順番が異なる可能性がある
なので実行順を指定するために DefaultExecutionOrder
を利用する
引数は実行順になっており、値が小さいものから実行されていく
[DefaultExecutionOrder(-1)] public class SampleMonoBehaviour : MonoBehaviour { }
DefaultExecutionOrder
をつけない場合は 0 として扱われるため −1
を指定すると他に指定しているものがない場合は最初に実行される
そのため下記の場合は SampleMonoBehaviour
が先に実行されて
SampleMonoBehaviour2
が次に実行される
[DefaultExecutionOrder(-1)] public class SampleMonoBehaviour : MonoBehaviour { } public class SampleMonoBehaviour2 : MonoBehaviour { }