Unity3Dオブジェクトのマウスクリックイベント処理を行なう

この記事は公開から4年以上経過しています。

Unity3Dでオブジェクトのクリックイベント処理を行いたい場合の作業手順のメモです。

予め新規Unity3Dプロジェクトに1個のオブジェクトを配置している前提で説明しています。

手順

1.

HierarchyタブでMain Cameraを選択し、InspectorタブのAdd ComponentボタンからEventPhysics Raycasterを追加する。
file

2.

Hierachyタブでクリックイベントを受け取るオブジェクトを選択し、InspectorタブのAdd ComponentボタンからNew Scriptを選択して任意の名前を付けた後Create And Addボタンを押下する。
file

3.

Hierachyタブ内の左上にある+▼ボタンからUIEvent Systemを追加する。
file

4.

ProjectタブのAssetsフォルダ内の前手順で追加したscriptをソースコードエディタで開き、下記のとおりMouseClicked()メソッドを追加する。
file

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ボタンから、EventEvent Triggerを追加し、Add New Event Typeボタンから、PoinerClickを追加する。
file

6.

Event TriggerPointer Click (BaseEventData)枠内の右下にある+ボタンから、イベントを追加する 。
file

7.

イベントのPointer Click (BaseEventData)枠内の左下にあるNone (Object)をクリックしてSceneタブ内のクリックイベントを受け取るオブジェクトを選択する。
file

8.

イベントのPointer Click (BaseEventData)枠内の右上にあるNo Functionをクリックしてスクリプト名MouseClickedを選択する。
file

確認

上記手順の完了後にPlayボタンで再生を行いイベントを追加したオブジェクトをマウスでクリックして以下のようにConsoleタブに’Clicked!’と表示されれば成功です。
file

もしオブジェクトにイベントハンドラを適切に登録しているのにイベントが発火しない…という場合は、手順1と3の登録が正しくできているかどうか確認してみて下さい。

シェアする

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

フォローする