1. ホーム 
  2. 備忘録 
  3. Unity

OnEnable関数

OnEnable、OnDisable

OnEnable と OnDisable はそれぞれ、ゲームオブジェクトのアクティブ/非アクティブ切り替わり時に1度呼ばれる関数である

呼び出しの順序としては Awake → OnEnable → Start の順であり、OnApplicationQuit → OnDisable → OnDestroy の順である

Awake や Start はゲームオブジェクトが生成されてから破棄されるまでの間に一度だけなのに対して、OnEnable や OnDisable はアクティブ切り替えによって何度も呼ばれる違いがある

アクティブ状態を切り替えて使いまわすような用途の場合に、初期化のタイミングとして使い勝手がよい


public class Sample : MonoBehaviour
{
  private float activeTime;

  /// <summary>
  /// アクティブ時処理
  /// </summary>
  void OnEnable()
  {
    activeTime = 0f;
  }

  /// <summary>
  /// 非アクティブ時処理
  /// </summary>
  void OnDisable()
  {
    Debug.Log( activeTime );
  }

  /// <summary>
  /// 常時処理
  /// </summary>
  void Update()
  {
    activeTime += Time.deltaTime;
  }
}