我真想弄个2D多边形对撞机来注册鼠标单击。我已附上图像和代码以显示我的位置。我无法点击以工作。

最终,我要实现的目标是将对撞机定义的区域设置为可单击而不是整个图像精灵。

我在这里做错了什么?需要帮忙!

using UnityEngine;
using System.Collections;

public class MouseClick : MonoBehaviour
{
    void OnMouseDown()
    {
        Debug.Log ("Clicked the Collider!");
    }
}


我已经定义了对撞机:
c# - 获取OnMouseDown以使用2D多边形对撞机-LMLPHP

我已经为图像设置了组件:
c# - 获取OnMouseDown以使用2D多边形对撞机-LMLPHP

最佳答案

使用新的uGUI系统,您甚至不需要对撞机!
使您的脚本看起来像这样,并且您应该能够对具有Image组件的任何对象执行此操作。这样就可以摆脱对撞机!

using UnityEngine.UI;
using UnityEngine.Events;
using UnityEngine.EventSystems;

public class MouseClick : MonoBehaviour, IPointerClickHandler
{
    void OnPointerClick(PointerEventData data)
    {
        Debug.Log ("Clicked the Collider!");
    }
}

09-27 08:20