オブジェクトをクリックしたら、アクションを起こす方法

2018年12月21日

Unityで、Cubeをクリックしたら前に進むサンプルを作成します。

実行結果

実行サンプル

設定

MainカメラにPhysicsRaycasterを追加します。

コンポーネントの追加
 >イベント
  >PhysicsRaycasterを選択



イベントシステムを追加

ヒエラルキーにイベントシステムを追加します。

ヒエラルキー
 >UI
  >イベントシステム


スクリプトを作成

using UnityEngine;
using UnityEngine.EventSystems;

[RequireComponent(typeof(Rigidbody))]
public class CubeControlEvent : MonoBehaviour, IPointerClickHandler
{
    Rigidbody rigidBody;
    public Vector3 force = new Vector3(0, 0, 10);
    public ForceMode forceMode = ForceMode.VelocityChange;

    // Use this for initialization
    void Start()
    {
        rigidBody = gameObject.GetComponent<Rigidbody>();

    }
    // ここに、クリックした時に実行したいコードを記述します。
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("test");
        rigidBody.AddForce(force, forceMode);
    }
}
Cubeにアタッチ

完成!

他のアクション(マウスが物体の上に乗った時、マウスが物体から離れた時)

public class CubeControlEvent : MonoBehaviour, IPointerClickHandler, IPointerExitHandler, IPointerEnterHandler
{
    // マウスがCubeから離れた場合
    // IPointerExitHandlerインターフェースを実装(classに:をつけて追記)します。
    public void OnPointerExit(PointerEventData eventData)
    {
        Debug.Log("Exit");
    }
    // マウスがCubeに乗った場合
    // IPointerEnterHandlerインターフェースを実装(classに:をつけて追記)します。
    public void OnPointerEnter(PointerEventData eventData)
    {
        Debug.Log("Enter");
    }
}

2018年12月21日Unity

Posted by hidepon