Unityでゲーム開発をしていると必ず登場するのが「イベント関数(ライフサイクル関数)」です。
しかし数が多く、「どれをいつ使うのか分からない…」という状態になりがちです。
この記事では、Unityのイベント関数を用途別に整理しつつ、実務で重要なポイントまで分かりやすく解説します。
目次
Unityイベント関数とは?
Unityのイベント関数とは、特定のタイミングで自動的に呼び出される関数のことです。
例えば:
- ゲーム開始時
- 毎フレーム
- 衝突した瞬間
- オブジェクトが破壊された時
など、開発者が呼ばなくてもUnityが実行してくれます。
初期化系(Awake / Start)
Awake()
- オブジェクト生成時に呼ばれる
- 最も早いタイミング
void Awake()
{
Debug.Log("Awake");
}Start()
- 最初のUpdateの前に1回だけ呼ばれる
void Start() { Debug.Log("Start"); }実行順(超重要)
Awake → OnEnable → Start
毎フレーム更新(Update系)
Update()
- 毎フレーム呼ばれる
- 基本の処理はここ
void Update() { Move(); }LateUpdate()
- Updateの後に呼ばれる
- カメラ追従などに最適
void Update() { Move(); }FixedUpdate()
- 一定時間ごとに実行(物理用)
実行順
FixedUpdate → Update → LateUpdate
オブジェクト状態変更
OnDisable()
- 無効化された時
OnDestroy()
- 削除された時
物理イベント(当たり判定)
衝突(Collider)
- OnCollisionEnter
- OnCollisionStay
- OnCollisionExit など
Trigger
- OnTriggerEnter
- OnTriggerStay
- OnTriggerExit など
2D版
- OnCollisionEnter2D
- OnTriggerEnter2D など
描画イベント
- OnBecameVisible(カメラに映った)
- OnBecameInvisible(見えなくなった)
- OnWillRenderObject(描画直前)
Gizmos(デバッグ描画)
- OnDrawGizmos
- OnDrawGizmosSelected
マウスイベント
※ Collider必須
- OnMouseDown
- OnMouseUp
- OnMouseDrag
- OnMouseEnter
- OnMouseExit
アプリケーションイベント
- OnApplicationFocus
- OnApplicationPause
- OnApplicationQuit
エディタ用イベント
OnValidate()
- Inspectorの値変更時に呼ばれる
Reset()
- コンポーネント追加時
その他イベント
アニメーション
- OnAnimatorMove
- OnAnimatorIK
Transform変更
- OnTransformParentChanged
- OnTransformChildrenChanged
パーティクル
- OnParticleCollision
Audio
- OnAudioFilterRead
まとめ
Unityのイベント関数は多いですが、本質はシンプルです。
「いつ呼ばれるか」を理解するだけ。特に重要なのはこの流れです。
Awake → Start → Update → LateUpdate → Destroy
これを理解すると、
- バグが減る
- 設計が綺麗になる
- 処理の順序ミスがなくなる
など、開発効率が一気に上がります。実行順を意識してバグが出にくい開発をしましょう。

