Unityで「ゲームオブジェクトに対してマウス操作」を行う場合、Event Triggerと言うコンポーネントで実現できます。
しかし、この Event Triggerはただ「Event Trigger」コンポーネントを追加すれば機能するわけではありません

前々回からこの Event Triggerの使い方・設定法を解説しています。


Unity_Text_Blog_210

前回、以下の Event Triggerを使用するための4つの設定の ②③を解説しました。今回は ④の詳細を解説していきます。

① ゲームオブジェクトにEvent Triggerコンポーネントの設定
② ゲームオブジェクトにColliderコンポーネントの設定
③ シーンにEvent Systemを追加
④ CameraにPhysics Raycasterコンポーネントを追加



【④ CameraにPhysics Raycasterコンポーネントを追加】

カメラ(Main Camera)も少し設定をする必要があります。
Hirerachyビュー上で「Main Camera」を選択します。そして、Inspectorビューの一番下の「Add Component」ボタンをクリックします。
Unity_Text_Blog_227

表示されたコンポーネント(Component)の種類リストから「Event」をクリックし、「Physics 2D Raycaster」をクリックします。
Unity_Text_Blog_228

Physics 2D Raycasterと言うコンポーネントが追加されました。これの設定はそのままでかまいません。
Unity_Text_Blog_229


以上が Event Triggerを使用するための、Unityエディタ上で行う4つの作業でした。



【Event Triggerを使ってのマウス操作のテスト】

では最後に、少し簡単なスクリプトを使用して、Event Triggerを使ってのマウス操作のテストをしてみましょう。

スクリプトは以下となります。4つの関数を用意しました。Debug.Logのメッセージでどの関数が呼ばれたかが分かるようになってます。
Unity_Text_Blog_230

そして、Event Triggerコンポーネントには、以下の Event Typeを設定しました。

・ Pointer Enter
・ Pointer Exit
・ Pointer Down
・ Pointer Up

Unity_Text_Blog_231

では、ゲーム実行ボタンを押し、ゲームを実行してみましょう。
Gameビューに対象のゲームオブジェクトが表示されています。
Unity_Text_Blog_232

マウスのポインタをこのゲームオブジェクトの上に持って行ってみましょう。すると、まず「ポインタが入った」のメッセージが Consoleビューに表示されます。
では、そこでマウスボタンを押すと「マウスボタンが押された」が、マウスボタンを放すと「マウスボタンが放された」が表示されました。
そして、マウスのポインタをゲームオブジェクトから放すと「ポインタが出た」が表示されました。
 


どうでしたか。最初にも言いましたが、Event Triggerはコンポーネントだけに目が行きがちで、Event Triggerコンポーネントを追加・設定したけど機能しないということが発生します。
しかし、実はうまくいってしまうこともあり、私も何度も混乱しました。これが多くの初心者の方の役に立てば幸いです。


Sponsored Link