3分でわかる!UnityのEvent Trigger(イベントトリガー)の使い方

Sponsored Link

UnityのEvent Triggerの使い方をマスターした!

どうも、Linです。マスク、5枚仕入れました。

 

もはや趣味となりつつあるユニティの勉強。

Unityの書籍をこれまで数えきれないぐらい読んで来ましたが、つい先日、また新たに「Unityの寺子屋」を読み始めたのです。

内容はわかりやすく和尚のキャラクターが出てくるので最高。たぶん、毎日この書籍を読むのが楽しみです。

読んでいてものすごく参考になるのですが、中でも

UnityのEvent Triggerの使い方

を解説しているのが参考になりました。

 

このEvent Triggerとは何かというと、

何かアクションを起こしたら、ある関数を呼び出せる

というものです。

 

例えば、とあるゲームオブジェクトにカーソルで触ったら、音楽を鳴らすということができるわけですね。

Event Triggerの存在を知る前は、ボタンで関数を呼び出せていたのですが、buttonでは、

クリックのみでしかアクションを登録できない

という欠点があったのです。

 

しかし、このEvent Triggerを使えば、クリック以外のアクションに対しても関数を呼び出せるので、ゲーム作成の自由度が増しますね。

 

 

3分でわかる!ユニティのEvent Triggerの使い方

ってことで、UnityのEvent Triggerの使い方をマスターしたのでメモしておきますね。

サンプルとして、

トマトにカーソルを合わせたら消える

というゲームを作っていこうと思います。

 

https://gyazo.com/751c925ebbd79e424ac9ef8f3726777c

 

 

Step1. ゲームオブジェクトを配置する

まずはゲームオブジェクトを配置します。

UIのImageをヒエラルキーに配置し、
https://gyazo.com/89de088d2c2fb99dfcdbdd38f0a3f41e

 

SourceImageにトマトの画像を設定します。
https://gyazo.com/c17c5436a3f4c16c905040d0c39cf65f

すると、こんな感じでゲームビューにトマトの画像が設置されることでしょう。

 
https://gyazo.com/b266dca5ccc7390333d9d9179e4f9324

 

これで準備完了です。

 

Step2. 呼び出したい関数を書く

Event Triggerで呼び出したい関数をスクリプトに書きましょう。

今回は「トマトにカーソルを合わせると消す」という関数を書いていきますよ。

 

ってことで、スクリプト「Tomato.sc」を作成。
https://gyazo.com/255248ec7b7828071c26c6b823577381

 

このTomato.scを次のように編集します。

 

 

Event Triggerで呼び出す関数「Touch」はパブリック (public) なものとして宣言します。

こうすると、スクリプトのクラス外からも呼び出せるわけですね。

 

この関数では何をやっているかというと、

スクリプトをアタッチしたゲームオブジェクトを削除する

という処理をしてます。

 

Destroyメソッドは引数に指定したオブジェクトを削除するので、this.gameObject(スクリプトをアタッチしたゲームオブジェクト)を取得して引数に設定しているわけです。

このスクリプト(Tomato.sc)をトマトの画像にアタッチします。
https://gyazo.com/27c8e9bdeff753c7f715e915820199a6

 

 

 

Step3. Event Triggerをコンポーネントに追加

次に、Event Triggerコンポーネントをトマトの画像に追加します。
https://gyazo.com/f9ae7942e3022db0d6ab419b16c6828b

 

 

Tomatoの画像の「Add Component」から「Event Trigger」を設定しましょう。

 

Step4. トリガーのタイプを選択

関数を呼び出すトリガーを選択します。

どんなアクションをしたら関数を呼び出すのかを決めるわけですね。

 

UnityのEvent Triggerでは次のトリガーが用意されています(Unity公式レファレンスより)。

OnBeginDrag ドラッグが始まる前に呼び出されます。
OnCancel Cancel イベントが発生すると、EventSystem に呼び出されます。
OnDeselect 新しオブジェクトが選択されると、EventSystem に呼び出されます。
OnDrag ドラッグする間にポインターが移動するたびに、EventSystem に呼び出されます。
OnDrop オブジェクトがドロップを取得すると、EventSystem に呼び出されます。
OnEndDrag ドラッグが終了すると、EventSystem に呼び出されます。
OnInitializePotentialDrag ドラッグが感知された時ではなく、ドラッグ開始が有効になる前に BaseInputModule は呼び出されます。
OnMove Move イベントが発生すると、EventSystem に呼び出されます。
OnPointerClick Click イベントが発生すると、EventSystem に呼び出されます。
OnPointerDown PointerDown イベントが発生すると、EventSystem に呼び出されます。
OnPointerEnter ポインターがこの EventTrigger に関連したオブジェクトに入るとき、EventSystem に呼び出されます。
OnPointerExit ポインターがこの EventTrigger に関連したオブジェクトを出るとき、EventSystem に呼び出されます。
OnPointerUp PointerUp イベントが発生すると、EventSystem に呼び出されます。
OnScroll Scroll イベントが発生すると、EventSystem に呼び出されます。
OnSelect Select イベントが発生すると、EventSystem に呼び出されます。
OnSubmit Submit イベントが発生すると、EventSystem に呼び出されます。
OnUpdateSelected この EventTrigger に関連するオブジェクトが更新されると、EventSystem に呼び出されます。

 

トリガーを選択するには「Add New Event Type」を押して望ましいものを探します。
https://gyazo.com/f75284139314a485d1009d9c7f696358
今回はその中から「Pointer Enter」を選びましょう。

こちらは「マウスのカーソルがゲームオブジェクトに触れたら」発動するトリガーになりますね。

 

Step5.呼び出す関数を設定

Event Triggerが発動した時に呼び出す関数を設定します。

Event Triggerコンポーネントの「+」マークをクリックし、先ほどのスクリプトがアタッチされているゲームオブジェクトを探します。

今回でいうと、ImageTomatoという「トマトの画像」のゲームオブジェクトになりますね。
https://gyazo.com/75a07e54e047ca56a0b74e32ebfff23e

 

あとは「No function」というタブからスクリプトのコンポーネントを探して、その中から呼び出したい関数を選択します。

今回は「Tomato.sc」というスクリプトの「Touch()」という関数を呼び出しましょう。
https://gyazo.com/28186d2d2ff1055f8bc8ddc96387012a

 

これでUnityのEvent Triggerの設定は完了です!

 

 

UnityのEvent Triggerでいろんなトリガーを使ってみよう

以上がUnityのEvent Triggerの使い方でした。

  1. ゲームオブジェクトを配置
  2. 呼び出したい関数を書く
  3. Event Triggerをコンポーネントに追加
  4. トリガーのタイプを選択
  5. 呼び出す関数を設定

 

無事にEvent Triggerを使えるようになると、こんな感じで、マウスのカーソルが触れると、トマトが消えるゲームが完成することでしょう。
https://gyazo.com/751c925ebbd79e424ac9ef8f3726777c

 

 

Event Triggerによって、クリック以外のトリガーで関数を呼び出せるようになりますので、ぜひともこの記事でEvent Triggerの使い方をマスターしていきましょう。

「もっとUnityの技を本格的に勉強したい!」

という方は「Unityの寺子屋」で勉強してみてくださいね。

それでは!

Lin

飯橋凛(Ihashi Lin)

インターネット広告代理店を1年半で退職。
その後、副業として活動していたウェブメディア運営のフリーランスへ。
現在はプログラミングの勉強に励み、0からフリーエンジニアの道を目指す。最近はキムチをまとめ買いにはまっている。


Sponsored Link

コメントはこちらからお願いします!



もう1本読んでみる