更新 vs 固定更新 vs 後期更新

Unity API の重要な部分は、継続的に実行される関数である更新関数です。

Unity 更新関数には 'Update'、FixedUpdate、LateUpdate の 3 種類があります。

'Update' 対 FixedUpdate

'Update' 関数と FixedUpdate 関数の違いは、実行頻度にあります。

'Update' 関数はフレームごとに 1 回実行されますが、FixedUpdate は 'Project Settings' -> 'Time' の "Fixed Timestamp" 値によって制御される一定のレートで実行されます。

'Update' 関数は、ゲーム ロジック、プレイヤー入力、および基本的に物理以外の計算のプログラミングに適しています。

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            //Space button has been pressed
        }    
    }

一方、FixedUpdate 関数は、レイキャスティング、リジッドボディへの力の適用、またはフレームレートに依存しない必要がある計算などの物理ベースの計算に適しています。

    void FixedUpdate()
    {
        //Use Physics Raycast to detect if there any object in front
        RaycastHit hit;
        if(Physics.Raycast(transform.position, transform.forward, out hit, 10))
        {
            Debug.Log("Object '" + hit.transform.name + "' is currently in front of this object.");
        }
    }

アップデートとの比較 LateUpdate

'Update' と LateUpdate は実行頻度の点では同じです (どちらもフレームごとに 1 回実行されます) が、LateUpdate はすべての 'Update' 関数の後に実行されます。

最後に、LateUpdate 関数は、アニメーション化されたモデルのボーンを変更する (例: プレーヤー モデルを上下に見せる) か、スムーズなカメラ フォローを実装するためによく使用されます。

    void LateUpdate()
    {
        //Make camera tagged 'MainCamera' look at this object transform
        Camera mainCamera = Camera.main;
        mainCamera.transform.LookAt(transform);
    }

取り除く

各更新関数には独自の使用例があります。

これらを組み合わせて使用​​することで、さまざまなシナリオを実装できます。

おすすめの記事
Unity の MonoBehaviour ガイド
Unity でのランタイム アニメーター コントローラーの使用
C# の便利なキーワードの Unity リスト
Unity でのキーボードとマウス入力の実装
関数とメソッド呼び出しを理解する
Unity C# スクリプト言語の概要
Unity コードで条件文 (if-else) を作成する