获取 OnMouseDown 以使用 2D 多边形碰撞器
Get OnMouseDown to work with a 2D Polygon Collider
我在获取 2D 多边形对撞机来记录鼠标点击时遇到了麻烦。我附上了图像和代码以显示我所在的位置。我无法点击工作。
最终,我想要实现的是将碰撞器定义的区域设置为可点击,而不是整个图像精灵。
我在这里做错了什么?需要帮助!
using UnityEngine;
using System.Collections;
public class MouseClick : MonoBehaviour
{
void OnMouseDown()
{
Debug.Log ("Clicked the Collider!");
}
}
我已经定义了对撞机:
我已经为我的图像设置了组件:
我想向您推荐一种不同的方法,因为它使用的是 UGUI。
附加一个 EventTrigger 脚本。然后添加一个 PointerClick 类型的新触发器。现在您可以将一个对象拖入其中并调用该对象上的任何函数。这是一种非常简单且可重复使用的方式。
有了这个,你可以安全地移除你的刚体和对撞机,除非它们是鼠标交互以外的东西所需要的。
将您的 Canvas "Render mode" 设置为 "Screen Space Camera" 并安装相机,
你使用新的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!");
}
}
我在获取 2D 多边形对撞机来记录鼠标点击时遇到了麻烦。我附上了图像和代码以显示我所在的位置。我无法点击工作。
最终,我想要实现的是将碰撞器定义的区域设置为可点击,而不是整个图像精灵。
我在这里做错了什么?需要帮助!
using UnityEngine;
using System.Collections;
public class MouseClick : MonoBehaviour
{
void OnMouseDown()
{
Debug.Log ("Clicked the Collider!");
}
}
我已经定义了对撞机:
我已经为我的图像设置了组件:
我想向您推荐一种不同的方法,因为它使用的是 UGUI。
附加一个 EventTrigger 脚本。然后添加一个 PointerClick 类型的新触发器。现在您可以将一个对象拖入其中并调用该对象上的任何函数。这是一种非常简单且可重复使用的方式。
有了这个,你可以安全地移除你的刚体和对撞机,除非它们是鼠标交互以外的东西所需要的。
将您的 Canvas "Render mode" 设置为 "Screen Space Camera" 并安装相机,
你使用新的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!");
}
}