获取OnMouseDown以使用2D多边形对撞机

时间:2015-08-11 12:46:40

标签: c# unity3d mouseevent

我有时间让2D多边形对撞机注册鼠标。我附上图片和代码来显示我的位置。我无法让点击工作。

最终,我想要实现的目的是将碰撞器定义的区域设置为可点击而不是整个图像精灵。

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

public class IdoNotHaveConstraints extends ButMyParentHas{

    @PutItWhenYouDoNotHaveConstraintsButParentHas
    public IdoNotHaveConstraints (){

    }
}

我已经定义了对撞机: I've defined the collider

我为我的图片设置了组件: I've setup the components for my image

3 个答案:

答案 0 :(得分:3)

将画布“渲染模式”设置为“屏幕空间相机”并连接相机,

答案 1 :(得分:2)

您使用新的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!");
    }
}

答案 2 :(得分:0)

我想建议一个不同的方法,因为它使用UGUI。

附加EventTrigger脚本。然后添加一个类型为PointerClick的新触发器。现在,您可以将对象拖入该对象并调用该对象上的任何函数。这是一种非常简单且可重复使用的方式。

有了这个,您可以安全地移除刚体和对撞机,除非鼠标交互以外的其他东西需要它们。

相关问题