はりうすブログ (のすけのメモ)

湘南にある小さな会社 代表 ”のすけ”のブログです

【Unity道場4】マウスクリックを検出せよ

問題:マウスクリックを検出せよ

ゲームオブジェクトのマウスクリックを検出してログを出力してください。

回答例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class PrefabDestroyer : MonoBehaviour, IPointerClickHandler
{
  // Start is called before the first frame update
  void Start()
  {

  }

  // Update is called once per frame
  void Update()
  {

  }

  public void OnPointerClick(PointerEventData pointerData)
  {
    Debug.Log(gameObject.name + " がクリックされました!");
  }

}

解説

マウスクリックを検出するためには、イベントシステムとカメラからのポインタークリックを検出します

f:id:hollywis:20210215231543p:plain

そのために、まずはインスペクタービューでカメラにPhysics Raycasterを設定します

そして、クリックを検出したいオブジェクトにスクリプトをセットします。

using UnityEngine.EventSystems;

イベントシステムのライブラリの利用宣言。

public class PrefabDestroyer : MonoBehaviour,  IPointerClickHandler

MonoBehaiviorの横に、IPointerClickHandlerを継承を記述します。


あとはOnPointerClick関数を定義して、クリックイベントを取得します。

public void OnPointerClick(PointerEventData pointerData)
  {
    Debug.Log(gameObject.name + " がクリックされました!");
  }

f:id:hollywis:20210215232154p:plain