如何统一获得白日梦控制器到指定游戏对象的距离?

时间:2018-09-16 17:57:11

标签: unity3d daydream

在google-vr示例之后,我设法将摄像机和控制器添加到场景中。 我需要做的下一件事是获取控制器与场景中任何指向的游戏对象之间的距离。 搜索了一会儿之后,我找不到任何教程,也找不到有关如何获得距离的信息。

那么,关于此操作,是否有任何最新的有效教程? (由于Google如此频繁地更新其API,因此互联网上的许多教程已经过时了) 或者这实际上是一个简单的任务,即我可以从GvrPointerInputModule.Pointer / GvrLaserPointer /其他GVR类获取值? 提前谢谢〜

2 个答案:

答案 0 :(得分:0)

您需要从控制器进行射线广播,并测量击中位置和射线源之间的差。我认为统一的射线广播可以返回内置距离。

答案 1 :(得分:0)

就像我怀疑的那样,GvrLaserPointer是答案。 如果其CurrentRaycastResult.gameObject不为空,则说明激光与某物相交。然后,我们可以从CurrentRaycastResult.worldPosition得到交点。 使用这一点,我们可以轻松计算距离。

注意:以防万一有人使用此方法失败,就像我之前所做的那样。检查您的射线投射组。确保“ GVRPointerPhysicsRaycaster”中的“ Raycaster事件蒙版”仅包含所需的图层。并且如果屏幕空间中有任何画布,请在“ Graphic Raycaster”中检查其“阻止蒙版”。默认情况下为“一切”,并且您的指针可能与画布相交,从而导致“怪异”的交点。这是造成我的问题的原因,并且要解决此问题,请为“阻止蒙版”选择“无”,然后瞧瞧。