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

Update関数

Update、LateUpdate、FixedUpdate

MonoBehaviour には複数の Update 関数が登録されている

具体的には Update、LateUpdate、FixedUpdate などの関数がある

それぞれの使い方に関しては下記の通りである


public class Sample : MonoBehaviour
{
  /// <summary>
  /// 常時処理
  /// </summary>
  void Update()
  {
    // 基本毎フレーム行いたい処理はこちら
  }

  /// <summary>
  /// 常時処理(後)
  /// </summary>
  void LateUpdate()
  {
    // 例えばプレイヤーを追跡するカメラの処理など
    // 他のコントローラーのUpdate()やFixedUpdate()での処理が終わった結果で動かしたい処理がある場合はこちら
  }

  /// <summary>
  /// 物理演算処理
  /// </summary>
  void FixedUpdate()
  {
    // Rigidbody がついたオブジェクトに継続的に力を加えたり、
    // 物理演算を考慮した処理を行いたい場合はこちら
    // Update はフレームレートによって呼び出し頻度が変わるが、
    // FixedUpdate は基本的に決められた頻度で呼び出される(ように見せかけた処理をする)
  }
}

イベント関数のアクセス修飾子は public や protected も可能である

virtual修飾子を用いて継承先で処理を記述するような作りにすることもできる


public class ControllObjectBase : ObjectBase
{
    /// <summary>
    /// UnityのUpdateにかませる
    /// </summary>
    protected sealed override void Update()
    {
        // 初期化していなければ処理させない
        if ( !isInitialized ) return;

        Execution();
    }

    /// <summary>
    /// 実行処理
    /// </summary>
    /// <remarks>UnityのUpdate関数と同等</remarks>
    protected virtual void Execution()
    {
        // 継承先で記述する
    }
}