はじめに
Eventtrigerって何?
EventTriggerは、発生させたいイベントを自分で指定するためのコンポーネントです。
これを使うと、Button以外のuGUIコンポーネント(ImageやPanel)や、ボタンの様に使うことができます。また、GameObjectであってもマウス操作を検知することができます。
2D・3Dどちらでも適応可能です。
そんな便利なイベントトリガーなのですが…
種類豊富でどれがなんだっけ??となってしまうので備忘録として残しておきます。
Eventtrigerが動く条件
- ヒエラルキー上にEvent Systemが存在する(設定はデフォルトのままでOK)
- Main CameraにPhysics Raycaster/Physics2D Raycasterコンポーネントがアタッチされている
- イベントを検出したいGameObjectにCollider・Event Triggerそれぞれのコンポーネントがアタッチされている
- 上記のEvent Triggerのイベントを設定されている
補足
- ColliderはisTriggerがあってもなくても大丈夫
- UIに付与する場合はOrder in Layerに注意(上に被ってたら反応しなくなる)
- Physics RaycasterとPhysics2D Raycasterはマニュアルにもほどんと説明がないが、簡単に言うとPhysics Raycasterは3Dオブジェクトに対して、Physics2D Raycasterは2Dオブジェクトに対してのイベントを発生させるコンポーネント
動作確認バージョン
Unity 2021.3.9f1
Eventtrigerの種類
PointerEnter
ポインターがオブジェクトに乗ったとき
PointerExit
ポインターがオブジェクトから離れたとき
PointerDown
ポインターがオブジェクトを押下したとき
PointerUp
ポインターを押下状態から離したとき
PointerClick
オブジェクト上でポインターを押下し、同一のオブジェクト上で離したとき
Drag
オブジェクトがドラッグされている間
※クリックしてポインターを動かせば、実際にオブジェクトが移動していなくても発生
Drop
ドラッグされてきた他のオブジェクトが、範囲内でドラッグ解除されたとき
Scroll
オブジェクトの範囲内でマウスホイールスクロールをしたとき
UpdateSelected
選択中のオブジェクトで毎フレーム発生
※選択可能なオブジェクトでのみ発生
※Imageなどで使用する場合はSelectableコンポーネント等の追加が必要
Select
オブジェクトが選択されたとき
※選択可能なオブジェクトでのみ発生
Deselect
選択中のオブジェクトで、選択状態が解除されたとき
※選択可能なオブジェクトでのみ発生
Move
キー入力による移動イベント(左、右、上、下など)が起こったとき(選択状態で方向キーの入力があったとき)
InitializePotentialDrag
ドラッグ対象が見つかったとき(ドラッグ対象をクリックしたとき)
BeginDrag
ドラッグを開始したとき
EndDrag
ドラッグが終了したとき(ドラッグ状態を解除したとき)
Submit
サブミットボタン(リターンキーやスペースキー)が押されたとき
※選択可能なオブジェクトでのみ発生
Cancel
キャンセルボタン(エスケープキーなど)が押されたとき
おわりに
少しでもみなさんのゲーム作りの助けになれば幸いです
記事を読んでくださった方は、是非弊社開発課のXもフォローしてね
毎日エンジニアに向けた情報発信を行っています