我正在尝试“Raycast Target”选项的工作方式。我认为它的工作原理是
但他的表现并非如此。
我在画布上有一个UI文本,后面有一个3D立方体游戏对象。我在UI文本上添加了以下脚本
public class CaptureUIObjectEvent : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("In UI click event");
}
}
我在3D对象上添加了以下脚本
public class Capture3DObjectEvent : MonoBehaviour
{
void OnMouseDown()
{
Debug.Log("In 3D click event");
}
}
选中“Raycast目标”:UI文本和3D对象都在捕获事件。所以两个日志都打印出来了。 UI文本未阻止click事件。我认为这不是正确的行为。此外,首先打印3D对象事件日志。我认为Unity在场景中有多个默认的raycaster用于UI(图形raycaster )和3D( Physics raycaster )对象。是这样吗?这种行为是否预期,这是否意味着我的3D对象将始终点击鼠标?
“未选中Raycast目标”:仅点击3D对象。我认为这是预期的。
我必须使CaptureUIObjectEvent派生自IPointerClickHandler以使其捕获任何事件,但对于3D对象,我不必使用它。我知道这也是因为UI和3D对象使用了不同的raycaster。是这样吗?