Unity:Start/Update以外にあるイベント関数とは?

最終更新日

はじめに

Unityでは、新規でスクリプトを作成すると Start / Update 関数の2つがデフォルトで追加されます。それ以外にもよく使う物であれば、Awake / OnGUI / OnEnable / OnDisable などがあるかと思います。今回は他にどんなものが使えるのか確認してみました。

スクリプトライフサイクルフローチャート

Unityの公式ページにそれぞれのイベント関数の実行タイミングが定義されていますのでご紹介します。

Initialization / Editor / Physics / Input events などのステージ毎に実行されるイベント関数の一覧が見えます。

また、下から上に線がつながっている部分はゲーム中に何度も実行される個所になりますのでアプリの実行時間にかなり影響される部分になります。
なので、FixedUpdate / Update / OnGUI 系などはしっかりとチューニングをしないとアプリ全般が遅くなる可能性があるのでなるべく使わないように心がけるとよいでしょうか。

イベント関数一覧

GUI関係

OnGUI

GUI イベントに応じて、フレームごとに複数回呼び出されます。レイアウトおよび再描画イベントが最初に処理され、その後にレイアウトおよびキーボード/マウスイベントが各入力イベントに対して処理されます。

エディター関係

Reset

Reset はスクリプトがオブジェクトに最初にアタッチされたときにスクリプトのプロパティーを初期化するために呼び出されます。Reset コマンドを実行した時も同様です。



フレーム間

OnApplicationPause

ポーズが検知されたフレームの終わりに、実際は、通常のフレームのアップデートの間に呼び出されます。OnApplicationPause が呼び出されてからひとつだけ追加のフレームが作成され、ポーズ状態を示すグラフィックスなどを表示できます。

Update関係

FixedUpdate
LateUpdate
Update

レンダリング関係

OnPreCull
OnBecameVisible
OnBecameInvisible
OnWillRenderObject
OnPreRender
OnRenderObject
OnPostRender
OnRenderImage
OnDrawGizmos

オブジェクトの生成・破棄

Awake
Start
OnDestroy

スクリプトの有効・無効

OnEnable
OnDisable

システム全体

OnApplicationQuit
OnLevelWasLoaded

コライダー系の関数

OnCollisionEnter
OnCollisionExit
OnCollisionStay


トリガー系の関数

OnTriggerEnter
OnTriggerExit
OnTriggerStay

次によみたい記事







よければ、SNSにシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする