这是一个易于使用的传送系统,适用于VR开发和 Unity 游戏引擎,我这里用的PicoVR一体机。
这是Unity 生成的 Navigation Mesh 作为玩家可以传送到的边界。因为这个过程是捎带Unity的工作,它是稳定的,可以在大多数项目中可靠地使用,该系统使用使用简单运动学方程的直观抛物线选择机制。
入门
1.将 testbed 场景中的 Navmesh 和 Camera Holder复制到你的VR场景中。
2.将你可以移动的区域烘焙,Window >AI> Navigation。
3.预配置的 Vive 导航网格,点击Update Navmesh Data就可以生成,可传送的区域。
4.根据实例场景中的代码可以看到 Pointer.PointOnNavMesh代表是可以传送的判断,这里我们可以把点击的判断事件改成对应手柄的判断。Pointer.SelectedPoint是传送的目的地,我们可以把我们的VR眼镜放到这个的子物体下实现人物的移动。如此一个简单的人物传送就完成了。
if (Input.GetMouseButtonDown(0)&& Pointer.PointOnNavMesh)
{
Debug.Log(0);
transform.position = Pointer.SelectedPoint;
}
其他配置
通过修改Paranolic Pointer 我们可以修改一些射线的参数。
可以修改射出贝塞尔曲线的弯曲弧度。
Selection Pad Properties可以为目标点增加可以移动时模型指示和不能移动时的模型指示。