【发布时间】:2016-05-07 22:14:13
【问题描述】:
单击我制作的 UI 图像时,'void OnMouseDown()' 函数不起作用! 我尝试过的事情:
- 列表项
- 把它放在画布上
- 重新导入资产
- 将 z 设置为 -1
- 设置合适尺寸的盒子碰撞器
- 设置盒子碰撞器 3D 而不是 2d 这些都不适合我,请帮助我!
我的脚本:
public class btnPlay : MonoBehaviour, IPointerDownHandler {
Vector3 pos;
// Update is called once per frame
void Update () {
pos = new Vector3 (Screen.width / 4.6f, Screen.height / 1.58f, -1f);
transform.position = pos;
}
void OnPointerDown(PointerEventData p) {
Debug.Log ("X");
SceneManager.LoadScene ("Level");
}
}
【问题讨论】:
-
它的
OnPointerDown(PointerEventData)用于 UI(实际上是新 UI 背后的 EventSystem)。如果您的 UI 元素没有提供开箱即用的 OnPointerDown,您可以实现在UnityEngine.EventSystems中找到的IPointerDownHandler接口(它真的很简单,只是听起来很复杂) -
当我添加接口时,我统一收到此错误:
btnPlay' does not implement interface memberUnityEngine.EventSystems.IPointerDownHandler.OnPointerDown(UnityEngine.EventSystems.PointerEventData)' 和最佳实现候选 `btnPlay .OnPointerDown(UnityEngine.EventSystems.PointerEventData)' in not public btnPlay 是脚本附加到的游戏对象 -
公开。但如果它是一个按钮,为什么不使用一个按钮?它具有您可以在检查器中分配目标的所有功能。
-
@yes 谢谢它的帮助!