MRが楽しい

MRやVRについて学習したことを書き残す

UnityでInspector上のコンポーネントのチェックボックスでStart/Updateの実行を切り替える

本日はUnityの小ネタ枠です。
UnityでInspector上のコンポーネントチェックボックスでStart/Updateの実行を切り替える方法についてです。

コンポーネントチェックボックス

Inspector上に表示されるコンポーネントチェックボックスは以下のライフサイクル関数の実行有無を切り替えることができます。
・Start()
・Update()
・FixedUpdate()
・LateUpdate()
・OnGUI()
・OnDisable()
・OnEnable()
docs.unity3d.com

上記のライフサイクル関数を持たないコンポーネントではチェックボックスは表示されません。

動作確認

以下のスクリプトチェックボックスをONにした状態とOFFにした状態でシーンを再生してみます。
・EnableTest.cs

using UnityEngine;

public class EnableTest : MonoBehaviour
{
    void Start()
    {
        Debug.Log("EnableTest Start");
    }

    void Update()
    {
        Debug.Log("EnableTest Update");
    }

    void FixedUpdate()
    {
        Debug.Log("EnableTest FixedUpdate");
    }

    void LateUpdate()
    {
        Debug.Log("EnableTest LateUpdate");
    }
}

以下の通りチェックボックスをONにした場合のみ各種メソッドが実行されました。


Start関数の実行タイミング

チェックボックスをOFFにして再生した場合、Start関数はチェックボックスをONにした一回目のみ実行されます。

Awake関数の実行

Awake関数はチェックボックスをOFFにしている場合も呼び出される点に注意してください。
以下のスクリプトチェックボックスをOFFにした状態でシーンを再生してみます。
・EnableTest2.cs

using UnityEngine;

public class EnableTest2 : MonoBehaviour
{
    void Awake()
    {
        Debug.Log("EnableTest Awake");
    }
    
    void Start()
    {
        Debug.Log("EnableTest Start");
    }
}

以下の通りチェックボックスをOFFにしていてもAwake関数が実行されました。