【发布时间】:2020-02-08 19:51:27
【问题描述】:
我正在使用以下代码执行光线投射并检测被击中的游戏对象:
var eventDataCurrentPosition = new PointerEventData(EventSystem.current);
eventDataCurrentPosition.position = screenPosition;
var results = new List<RaycastResult>();
EventSystem.current.RaycastAll(eventDataCurrentPosition, results);
但是,我只希望EventSystem.current.RaycastAll 击中某些对象。有什么方法可以只允许某些 GameObjects 接收光线投射?
【问题讨论】:
-
看起来您只是在 UI 上进行光线投射...这是您的意图吗?您可以添加一个命中掩码,使光线仅与属于您选择的图层的对象发生碰撞(但上面的代码对此不起作用,因此询问您是否只想为 UI 执行此操作)。
-
是的..我只想点击可用的按钮
-
你想对光线投射的结果做什么?如果您的意图是驱动菜单/游戏,那么您可能应该在 Inspector 中显示的每个按钮上使用
Click()函数。 -
我想得到一个用户已经注视了那个特定按钮的回调。这是一个 VR 应用程序
-
为什么要防止循环?
标签: c# unity3d virtual-reality raycasting