Event Triggerの種類と用途と使い方
uGUIのButtonコンポーネントにはOn Click()というイベントが用意されています。
これは、「ボタンがクリックされたら…」という条件でイベントを発生させるものですが、
正確なタイミングは「ボタンを押して、離した時」となっています。
もし、「ボタンを押した時」や、「ボタンを離した時」、「ボタンにマウスを乗せた時」のように、
イベント発生のタイミングを細かく指定したければ、EventTriggerコンポーネントを使いましょう。
※使用しているUnityのバージョンは2017.1.0f3です。
Event Triggerについて
EventTriggerは、発生させたいイベントを自分で指定するためのコンポーネントです。
これを使うと、Button以外のuGUIコンポーネント(ImageやPanel)などでも、ボタンの様に使うこともできます。
Event Triggerの使い方
今回はuGUIのImageを用意して、イベントを追加してみたいと思います。
イベントを設定したいオブジェクトにEvent Triggerコンポーネントを追加します。
Add New Event Type のボタンをクリックして、追加したいイベントを選択します。
「Pointer Enter」を選択してみましょう。これは、マウスが範囲内に入ると発生するイベントです。
イベントのタイプについては後述しますが、複数設定も可能です。
イベント着火時にコールするメソッドを用意しましょう。
1 2 3 4 5 6 7 8 | using UnityEngine; public class EventTriggerTest : MonoBehaviour { public void Event() { Debug.Log( "イベント発生!" ); } } |
用意したスクリプトをアタッチするのはどのゲームオブジェクトでも大丈夫ですが、今回はイベントを登録するImageオブジェクト自体にアタッチしておきます。
アタッチしたら、下図を参考にPointer Enterにスクリプトを紐づけましょう。
※この項目は本来、スクリプトを保持しているゲームオブジェクトを紐づける項目ですが、上図の場合スクリプトを直接紐づけても同じ結果となります。
別のゲームオブジェクトにアタッチされているスクリプトを紐づけたい場合は、そのゲームオブジェクト自体を上図と同じように紐づけます。
ゲームオブジェクトが紐づけられたら、コールするメソッドを設定します。
No Functionのプルダウンをクリックし、呼び出すスクリプト→メソッドの順番に選択していきます。
※メソッドはpublicでないと一覧に表示されないため、注意しましょう。
以上で設定は完了です。
シーンを再生して、Imageをマウスでオーバーフローしてみましょう。
画像の範囲内にマウスが入った瞬間に、Consoleにログが出力されたら成功です。
※ハイライトするためにSelectableコンポーネントを追加しています。
Event Typeの種類と用途
イベントとして指定できるEvent Type は、以下の通りです。
それぞれの用途です。
Event Type | イベント発生のタイミング |
---|---|
PointerEnter | ポインターがオブジェクトに乗ったとき |
PointerExit | ポインターがオブジェクトから離れたとき |
PointerDown | ポインターがオブジェクトを押下したとき |
PointerUp | ポインターを押下状態から離したとき |
PointerCheck | オブジェクト上でポインターを押下し、同一のオブジェクト上で離したとき |
Drag | オブジェクトがドラッグされている間 ※クリックしてポインターを動かせば、実際にオブジェクトが移動していなくても発生 |
Drop | ドラッグされてきた他のオブジェクトが、範囲内でドラッグ解除されたとき |
Scroll | オブジェクトの範囲内でマウスホイールスクロールをしたとき |
UpdateSelected | 選択中のオブジェクトで毎フレーム発生 ※選択可能なオブジェクトでのみ発生 ※Imageなどで使用する場合はSelectableコンポーネント等の追加が必要 |
Select | オブジェクトが選択されたとき ※選択可能なオブジェクトでのみ発生 |
Deselect | 選択中のオブジェクトで、選択状態が解除されたとき ※選択可能なオブジェクトでのみ発生 |
Move | キー入力による移動イベント(左、右、上、下など)が起こったとき (選択状態で方向キーの入力があったとき) |
InitializePotentialDrag | ドラッグ対象が見つかったとき (ドラッグ対象をクリックしたとき) |
BeginDrag | ドラッグを開始したとき |
EndDrag | ドラッグが終了したとき (ドラッグ状態を解除したとき) |
Submit | サブミットボタン(リターンキーやスペースキー)が押されたとき ※選択可能なオブジェクトでのみ発生 |
Cancel | キャンセルボタン(エスケープキーなど)が押されたとき |
以上です。
最近よく読まれている記事
【保存版】UnityのEvent Triggerの種類と用途と使い方