【发布时间】:2016-05-26 05:41:19
【问题描述】:
我有一个非常基本的问题,即启用鼠标光标作为指针。我试图通过一个简单的代码编写指针进入事件,指针进入退出事件工作。但是当我使用事件触发器的 PointerEnter 或 PointerExit 事件时,不会触发这些操作。 我是否必须启用某些东西才能将鼠标作为 Unity 3d 指针激活?
【问题讨论】:
我有一个非常基本的问题,即启用鼠标光标作为指针。我试图通过一个简单的代码编写指针进入事件,指针进入退出事件工作。但是当我使用事件触发器的 PointerEnter 或 PointerExit 事件时,不会触发这些操作。 我是否必须启用某些东西才能将鼠标作为 Unity 3d 指针激活?
【问题讨论】:
PointerEnter 和 PointerExit 用于 Unity UI:
在顶部包含using UnityEngine.EventSystems;。
实现PointerEnter和PointerExit接口。
将脚本附加到 UI 的画布上。
PointerEnter 和 PointerExit 用于 3D 对象/模型:
在顶部包含using UnityEngine.EventSystems;。
实现PointerEnter和PointerExit接口。
将脚本附加到 3D 对象并确保 2D Collider 附加到该 3D 对象/模型。
选择Camera 并将Physics Raycaster 附加到相机。
PointerEnter 和 PointerExit 用于 2D 对象/Sprite:
在顶部包含using UnityEngine.EventSystems;。
实现PointerEnter和PointerExit接口。
将脚本附加到 2D 对象并确保 2D Collider 附加到该 2D 对象/Sprite。
选择Camera 并将Physics 2D Raycaster 附加到相机。
所有这些场景的代码都是相同的。
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class ClickTester : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
public void OnPointerEnter(PointerEventData eventData)
{
Debug.Log("Pointer Enter");
}
public void OnPointerExit(PointerEventData eventData)
{
Debug.Log("Pointer Exit");
}
}
【讨论】:
Physics 2D Raycaster 附加到相机。单击播放并在 GameView 中间单击一次,然后您现在可以将鼠标移到 Sprite 上,它应该可以工作。如果这不起作用,那么您的项目不是 2D 而是 3D。创建一个新项目,这次选择 2D。