C# 为什么我不使用GraphicRaycaster点击UI元素?

C# 为什么我不使用GraphicRaycaster点击UI元素?,c#,user-interface,unity3d,raycasting,C#,User Interface,Unity3d,Raycasting,我正在尝试制作一张世界空间画布,并将其与世界对象3D光线投射进行交互 我有一个带有GraphicRaycaster的画布和一个带有raycast目标的UI元素。我在网上找到了一些关于UI raycast的代码,并对它们进行了测试,以在画布上模拟鼠标光标。我想在我的按钮上有一个悬停效果,模拟点击 拉票机; 矢量2屏幕点; 无效更新 { 列表结果=新列表; PointerEventData eventData=新的PointerEventData EventSystem.current; event

我正在尝试制作一张世界空间画布,并将其与世界对象3D光线投射进行交互

我有一个带有GraphicRaycaster的画布和一个带有raycast目标的UI元素。我在网上找到了一些关于UI raycast的代码,并对它们进行了测试,以在画布上模拟鼠标光标。我想在我的按钮上有一个悬停效果,模拟点击

拉票机; 矢量2屏幕点; 无效更新 { 列表结果=新列表; PointerEventData eventData=新的PointerEventData EventSystem.current; eventData.position=屏幕点; canvasRaycaster.RaycasteventData,结果; foreach RaycastResult产生结果 Debug.LogHit+result.gameObject.name; }
什么也没发生没有debug.log,我已经尝试使用Vector2 screenPoint中存储的屏幕高度和宽度之间以及0和1 x和y之间的所有值。

如果使用eventData.position=Input.mousePosition;相反,我不能使用eventData.position=Input.mousePosition;因为我在虚拟现实中,所以我没有鼠标,只有控制器,但我会尝试看看是否有任何事情发生。有专门的UI对撞机吗?Raycast目标:仅在UI元素上为true是不够的?等等,为什么需要这样做?UGUI对象已经可以与VR配合使用了。默认情况下,按钮单击、文本字段选择等操作会自动为您执行,即使对于世界空间画布也是如此。好的,那么请问如何将光线投射从我的控制器发送到世界空间画布并与之交互?@Draco18s实际上这很棘手。。。如果虚拟现实目标设备的相应SDK提供相应的EventSystem/PointerModule来处理指针指向器、指针下降等事情,则它会自动工作。。如果不是这种情况,您有时必须实现自己的,这可能会变得非常复杂。