コードの型
ゲームの画面が描き変わるたび(通常1秒間に60回など)に、繰り返し自動実行されます。
C#
void Update()
{
// 毎フレーム(非常に短い間隔で)実行したい処理を書く
// 例:プレイヤーの移動や、キー入力のチェック
if (Input.GetKey(KeyCode.RightArrow))
{
transform.Translate(0.1f, 0, 0); // 毎フレーム右に動かす
}
}
コードの仕組み
Update() は、Unityが「ゲーム画面を描画する直前」に必ず呼び出してくれる魔法のメソッドです。
- 毎フレーム実行: ゲームの動き(アニメーションや物理演算)は、パラパラ漫画のように静止画を高速で切り替えて作られています。その「切り替わりの瞬間」ごとに
Update()が呼ばれることで、キャラクターを滑らかに動かしたり、スコアを更新したりできます。
活用例(入力の監視や変化の計算)
「今、キーが押されたか?」「タイマーはあと何秒か?」といった、刻一刻と変わる状況をチェックするのに最適です。
C#
void Update()
{
// 1. キー入力をチェック(押されている間ずっと反応する)
if (Input.GetMouseButtonDown(0))
{
Debug.Log("クリックされた!");
}
// 2. タイマーのカウントダウン
timeRemaining -= Time.deltaTime;
}
その他(Update() に関する重要ポイント)
- Time.deltaTime(タイムデルタタイム):
Update()はPCの性能によって呼ばれる回数が変わります(速いPCは1秒に100回、遅いPCは30回など)。- そのまま数値を足すとPCによってゲームの速度が変わってしまうため、
* Time.deltaTimeを掛けることで「PCの性能に関わらず、1秒間に同じだけ進む」ように調整するのが鉄則です。
- 重い処理を避ける:
Update()は非常に短い時間で何度も呼ばれます。ここで「重い計算」や「他のオブジェクトの検索(GameObject.Findなど)」を行うと、ゲームがカクついてしまいます。重い処理はStart()や別のタイミングに任せましょう。
まとめ:Start() と Update() の比較
| メソッド | 実行タイミング | 主な役割 |
| Start() | 最初だけ | 変数の初期化、設定の準備 |
| Update() | ずっと毎フレーム | 動きの計算、入力監視、状態の更新 |

コメント