うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】MonoBehaviour クラスの実行順を指定する

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
{
}