14.3.3 实现VR中的移动
Player在场景中的位置决定了VR用户进入VR应用后的初始位置。本例中希望VR用户从展厅出入口处开始体验,所以将Player的位置移动到出入口处。注意,由于Player的高度几乎等同于人类的普遍高度,其Position Y轴的值可以理解为玩家在VR世界中站立地面的高度,由于要保持虚拟世界和真实世界的一致性,因此设置Position Y为0。Player的位置如图14.26所示。
在Steam VR中,可以借助于Teleporting预制体快速实现VR场景中的瞬移功能。在Project面板中,搜索“Teleporting”关键字,或直接定位到Assets>Steam VR>Interac.tionSystem>Teleport>Prefabs,将“Teleporting”预制体拖至Hierarchy面板中,无须调整其位置。
图14.26 Player的位置设置
VR场景中的瞬移(位置传送)方式主要有两种:一种是在某个大范围内都可以自由移动,使用“Teleport Area”脚本组件实现;另一种是设置好固定的目标位置,使用“Teleport Point”组件实现。本例中使用Teleport Area的瞬移方式。
在当前场景中,新建一个Plane,在其Inspector面板中,单击“Add Component”按钮,搜索脚本组件“Teleport Area”,将其添加到这个新建的Plane对象上。可以看到Plane上附加了红色高亮的线框,表示支持位置传送的区域,如图14.27所示。
图14.27 支持位置传送的区域
由于当前的默认传送区域比展馆的实际内部面积要小,因此需要调整其大小。选择缩放工具,调整新Plane的Scale X、Y的大小,使其刚好位于展厅内部,如图14.28所示。再选择移动工具,将Plane稍向上提一些,使其略高于原先的地面“Ground”对象,例如设置Posi.tion Y=0.07。
图14.28 调整新Plane的大小
将天花板“Top”对象重新显示出来,保存当前场景,单击“Play”按钮运行测试。佩戴VR头显,并打开手柄。对准想要瞬移到达的位置,按下TouchPad键,手柄即会发出曲线射线,同时地面上会出现高亮的圆圈,表示可以瞬移到此处,松开Touch Pad键即可实现瞬移,如图14.29所示。
图14.29 Teleporting位置传送效果
Teleporting组件会自动实现屏蔽墙壁的功能,例如对着屏风墙按下Touch Pad键,墙面上会出现红色高亮提示,并不会瞬移到墙后的地面上。
添加展品的UI交互