【Unity】Event Triggerの種類と用途と使い方【保存版】


Event Triggerの種類と用途と使い方


Event Trigger
uGUIのButtonコンポーネントにはOn Click()というイベントが用意されています。
これは、「ボタンがクリックされたら…」という条件でイベントを発生させるものですが、
正確なタイミングは「ボタンを押して、離した時」となっています。

もし、「ボタンを押した時」や、「ボタンを離した時」、「ボタンにマウスを乗せた時」のように、
イベント発生のタイミングを細かく指定したければ、EventTriggerコンポーネントを使いましょう。

※使用しているUnityのバージョンは2017.1.0f3です。

Event Triggerについて


EventTriggerは、発生させたいイベントを自分で指定するためのコンポーネントです。
これを使うと、Button以外のuGUIコンポーネント(ImageやPanel)などでも、ボタンの様に使うこともできます。

Event Triggerの使い方

今回はuGUIのImageを用意して、イベントを追加してみたいと思います。

イベントを設定したいオブジェクトにEvent Triggerコンポーネントを追加します。
Event Trigger

Add New Event Type のボタンをクリックして、追加したいイベントを選択します。
「Pointer Enter」を選択してみましょう。これは、マウスが範囲内に入ると発生するイベントです。
イベントのタイプについては後述しますが、複数設定も可能です。
Event Trigger

イベント着火時にコールするメソッドを用意しましょう。

using UnityEngine;

public class EventTriggerTest : MonoBehaviour {

	public void Event() {
		Debug.Log("イベント発生!");
	}
}

用意したスクリプトをアタッチするのはどのゲームオブジェクトでも大丈夫ですが、今回はイベントを登録するImageオブジェクト自体にアタッチしておきます。
アタッチしたら、下図を参考にPointer Enterにスクリプトを紐づけましょう。
Event Trigger
※この項目は本来、スクリプトを保持しているゲームオブジェクトを紐づける項目ですが、上図の場合スクリプトを直接紐づけても同じ結果となります。
別のゲームオブジェクトにアタッチされているスクリプトを紐づけたい場合は、そのゲームオブジェクト自体を上図と同じように紐づけます。

ゲームオブジェクトが紐づけられたら、コールするメソッドを設定します。
No Functionのプルダウンをクリックし、呼び出すスクリプト→メソッドの順番に選択していきます。
Event Trigger
※メソッドはpublicでないと一覧に表示されないため、注意しましょう。

以上で設定は完了です。
シーンを再生して、Imageをマウスでオーバーフローしてみましょう。
画像の範囲内にマウスが入った瞬間に、Consoleにログが出力されたら成功です。
Event Trigger
※ハイライトするためにSelectableコンポーネントを追加しています。

Event Typeの種類と用途


イベントとして指定できるEvent Type は、以下の通りです。
EventType

それぞれの用途です。

Event Type イベント発生のタイミング
PointerEnter ポインターがオブジェクトに乗ったとき
PointerExit ポインターがオブジェクトから離れたとき
PointerDown ポインターがオブジェクトを押下したとき
PointerUp ポインターを押下状態から離したとき
PointerCheck オブジェクト上でポインターを押下し、同一のオブジェクト上で離したとき
Drag オブジェクトがドラッグされている間
※クリックしてポインターを動かせば、実際にオブジェクトが移動していなくても発生
Drop ドラッグされてきた他のオブジェクトが、範囲内でドラッグ解除されたとき
Scroll オブジェクトの範囲内でマウスホイールスクロールをしたとき
UpdateSelected 選択中のオブジェクトで毎フレーム発生
※選択可能なオブジェクトでのみ発生
※Imageなどで使用する場合はSelectableコンポーネント等の追加が必要
Select オブジェクトが選択されたとき
※選択可能なオブジェクトでのみ発生
Deselect 選択中のオブジェクトで、選択状態が解除されたとき
※選択可能なオブジェクトでのみ発生
Move キー入力による移動イベント(左、右、上、下など)が起こったとき
(選択状態で方向キーの入力があったとき)
InitializePotentialDrag ドラッグ対象が見つかったとき
(ドラッグ対象をクリックしたとき)
BeginDrag ドラッグを開始したとき
EndDrag ドラッグが終了したとき
(ドラッグ状態を解除したとき)
Submit サブミットボタン(リターンキーやスペースキー)が押されたとき
※選択可能なオブジェクトでのみ発生
Cancel キャンセルボタン(エスケープキーなど)が押されたとき

以上です。

今月の新着記事

【全部Gitのせい】Unityの Unable to parse YAML file エラーの直し方
【知っておいた方がいい】UnityでWebGLにビルドできないエラーの対処法
【解けないとマズい練習問題】C# 練習問題 9

記事一覧にもどる

  • このエントリーをはてなブックマークに追加

PAGE TOP