この記事は公開から4年以上経過しています。
Unity3Dでオブジェクトのクリックイベント処理を行いたい場合の作業手順のメモです。
予め新規Unity3Dプロジェクトに1個のオブジェクトを配置している前提で説明しています。
手順
1.
Hierarchy
タブでMain Camera
を選択し、Inspector
タブのAdd Component
ボタンからEvent
→Physics Raycaster
を追加する。
2.
Hierachy
タブでクリックイベントを受け取るオブジェクトを選択し、Inspector
タブのAdd Component
ボタンからNew Script
を選択して任意の名前を付けた後Create And Add
ボタンを押下する。
3.
Hierachy
タブ内の左上にある+▼
ボタンからUI
→Event System
を追加する。
4.
Project
タブのAssets
フォルダ内の前手順で追加したscriptをソースコードエディタで開き、下記のとおりMouseClicked()
メソッドを追加する。
public class CubeBehaviourScript : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
// マウスクリックイベントハンドラ
public void MouseClicked()
{
Debug.Log("Clicked!");
}
}
5.
Inspector
タブのAdd Component
ボタンから、Event
→Event Trigger
を追加し、Add New Event Type
ボタンから、PoinerClick
を追加する。
6.
Event Trigger
のPointer Click (BaseEventData)
枠内の右下にある+
ボタンから、イベントを追加する 。
7.
イベントのPointer Click (BaseEventData)
枠内の左下にあるNone (Object)
をクリックしてScene
タブ内のクリックイベントを受け取るオブジェクトを選択する。
8.
イベントのPointer Click (BaseEventData)
枠内の右上にあるNo Function
をクリックしてスクリプト名
→MouseClicked
を選択する。
確認
上記手順の完了後にPlay
ボタンで再生を行いイベントを追加したオブジェクトをマウスでクリックして以下のようにConsole
タブに’Clicked!’と表示されれば成功です。
もしオブジェクトにイベントハンドラを適切に登録しているのにイベントが発火しない…という場合は、手順1と3の登録が正しくできているかどうか確認してみて下さい。