前言
我们在制作VR项目的时候,大部分时候,是把UI固定到一个位置,比如桌子或者空中,这么做固然稳定,但是当我们有以下需求的时候,固定位置的UI可能会不适用:
1.场景较小,操作物体占用了很大体积,没有固定的可以清晰显示完整UI的位置。
2.需要频繁的前后左右,更换姿势操作现场物体时。
3.新手玩家,不熟悉场景,找不到我们设定的UI位置。
以上就是我们实际项目中遇到的一些问题,导致使用传统的固定位置UI,被客户诟病:找不到,不好操作,看不清。
于是乎,我想起了Pico原生系统中,有这样一个UI提示框,可以跟随我的视角进行移动,但是它不是实时移动的,只有当我的视线距离UI有一定距离后,他才会跟随过来。这样既保证了UI跟随视角的功能,又保证了UI稳定的在空中,非常方便了玩家的查看和操作。
由于是Pico系统自带的功能,恕我无法截图给大家看原效果,可以看一下我实现后的效果。
实现原理
1.UI跟随相机移动
2.检测碰撞,避免穿模
这里简单介绍一下,我实现的功能,首先就是跟随头部转动功能,只有当眼睛视角超出了UI范围时,才会跟随,否则UI是固定在眼前的位置的。然后另一个功能就是避免穿模的功能,因为VR项目中可能会有其他的3D物体碰撞,所以当物体较