13.4.3 制作挡风玻璃UI
挡风玻璃UI形象的表现了UI和VR用户、VR空间之间的相对关系。可以把VR用户想象成为正在驾驶汽车的司机,挡风玻璃始终是位于用户的座位前方,虽然用户向左或向右扭头时,挡风玻璃不会跟着转动,但它与用户之间的相对位置始终是不变的,尽管两者在世界空间的坐标是在向前移动。下面介绍挡风玻璃UI的制作方法。
连同Canvas一起,删除之前场景中的[CameraRig]对象。将Steam VR Plugin中的预制体Player拖至Hierarchy面板中,使其位置归为默认参数。将Canvas预制体拖至Player子对象Steam VRObjects之上,成为其子对象。当前Hierarchy面板如图13.33所示。
图13.33 Hierarchy面板中的层级关系
将Steam VR Plugin中的预制体Teleporting拖至Hierarchy面板中。在当前场景中新建一个Plane,重命名为“TeleportPlane”,设置其位置为稍高于原地面,如设置Position Y为0.1。在Inspector面板中,搜索并为其添加“Teleport Area”脚本组件,以实现VR场景的瞬移(位置传送)功能。运行当前场景,对着想要到达的位置按下TouchPad键,手柄会发出曲线射线,同时地面上会出现高亮光圈,松开TouchPad键即可瞬移到当前位置,如图13.34所示。关于Player、Teleporting组件,后文将会进一步介绍。
图13.34 用Steam VR实现瞬移
保存当前场景,运行查看效果。可以看到,UI画布的初始位置就在用户前方;当用户看向四周其他方向时,画布仿佛保持位置静止。但当用户按下VR手柄上的Touch Pad键进行瞬移时,画布也同样发生了瞬移,并且与用户之间的相对位置不变。至此,完成了挡风玻璃UI的基本制作流程。