ドキュメント

Unity Engine

Unity Engine

イベント機能

イベント関数は、物理演算演算、レンダリング、入力、シーンのロード、オブジェクトのライフサイクルに関連するコアエンジンイベントに応答するために、MonoBehaviour から派生ビルトインコールバックです。
読み終わるまでの所要時間 9 分最終更新 3日前

イベント関数は、すべての MonoBehaviour スクリプトコンポーネントが受信できる、事前定義されたコールバックのセットです。コールバックは、以下のようなさまざまな Unity エディターおよびエンジンイベントによってトリガーされます。
MonoBehaviour
派生クラスに適切なメソッドシグネチャを実装して、ゲームオブジェクトがソースイベントに反応できるようにします。
使用可能なコールバックの完全なリストについては、
MonoBehaviour
API リファレンスの Messages を参照してください。このセクションの残りの部分では、イベント関数のキーグループの概要を説明します。

定期更新イベント

プレイ中のゲームは連続的に一連のフレームをレンダリングします。ゲームプログラミングのキー概念は、各フレームがレンダリングされる直前にオブジェクトの位置、ステート、および動作を変更することです。
Update
関数は、Unity におけるこの種のコードの主な場所です。
Update
は、フレームがレンダリングされる前と、アニメーションが計算される前に呼び出されます。
物理演算システムも、フレームレンダリングと同様の方法で離散時間ステップで更新されます。
FixedUpdate
と呼ばれる別のイベント関数は、各物理演算更新の直前に呼び出されます。物理演算の更新とフレームの更新は、同じ頻度で発生するわけではないため、物理演算コードを
Update
ではなく
FixedUpdate
機能に配置すると、より正確な結果が得られます。
また、シーン内のすべてのオブジェクトに対して
Update
関数と
FixedUpdate
関数が呼び出された後、かつすべてのアニメーションが計算された後のある時点で、追加の変更を行うことも役立つ場合があります。このシナリオの例としては、
  • カメラがターゲット オブジェクトでトレーニングされ続ける必要があるとき。カメラの向きの調整は、ターゲット オブジェクトが移動した後に行う必要があります。
  • スクリプトコードがアニメーションのエフェクトをオーバーライドするとき。例えば、キャラクターの頭部をシーン内のターゲットオブジェクトに外観を合わせる。
LateUpdate
機能は、このような状況で使用できます。
フレームおよび物理演算の更新が全体的なイベント機能更新シーケンスにどのように組み込まれるかの概要については、イベント機能実行順を参照してください。

初期化イベント

多くの場合、ゲーム中に更新が発生する前に初期化コードをコールできると便利です。
Start
機能は、 オブジェクトの最初のフレームまたは物理演算更新の前に呼び出されます 。
Awake
関数は、シーンがロードされたときにシーン内の各オブジェクトに対して呼び出されます。さまざまなオブジェクトの
Start
と
Awake
関数は任意の順序で呼び出されますが、最初の
Start
が呼び出される前にすべての
Awake
インスタンスが終了します。つまり、
Start
関数のコードは、
Awake
フェーズで以前に実行された他の初期化を使用できます。
初期化関数が全体的なイベント機能更新シーケンスにどのように組み込まれるかの概要については、イベント機能実行順を参照してください。

GUI イベント

古い機能の IMGUI UI システムを使用するプロジェクトでは、UI 要素の描画と管理のために
MonoBehavior.OnGUI
コールバックが定期的に呼び出されます。
注
OnGUI
コールバックをシーン内の任意のオブジェクトに追加すると、フレーム処理プロセスに IMGUI 処理も追加され、余分なオーバーヘッドが発生します。
OnGUI
は、プロジェクトで IMGUI UI システム が使用されている場合にのみ使用してください。これは推奨されません。
詳細については、UI システム を参照してください。

入力イベント

MonoBehaviour
クラスには、マウスでユーザーアクションに反応するためのプレフィックス
OnMouse
(例:
OnMouseOver
、
OnMouseDown
) を持つ一連のイベント関数もあります。これらのコールバックは、推奨されなくなった古い機能の入力マネージャーを使用するプロジェクトでのみサポートされます。
詳細については、入力 を参照してください。

物理演算イベント

物理演算システムは、オブジェクトのスクリプトコンポーネントでイベント関数を呼び出すことによって、そのオブジェクトに対する衝突を報告します。
OnCollisionEnter
、
OnCollisionStay
、および
OnCollisionExit
関数は、接触、保持、および破損が発生したときに呼び出されます。対応する
OnTriggerEnter
、
OnTriggerStay
、および
OnTriggerExit
関数は、オブジェクトのコライダーがトリガーコライダーとして設定されるときに呼び出されます。
物理演算イベント関数の詳細は、コライダー相互作用 を参照してください。

追加リソース