本日は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にした場合のみ各種メソッドが実行されました。
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関数が実行されました。