UGUI在VRTK中的视野跟随

我们的交互流程是用射线点击按钮进入识别状态,说话,再次点击结束识别,返回和显示结果并作出反馈。

在这一过程中,场景里的语音录音按钮必须随时可见和可交互,而在SteamVR和VRTK下,UGUI的Canvas必须是World Space模式才可交互,World Space的Canvas会造成非常多的连带问题,比如默认情况下是静止在场景中的,HMD移动,Canvas并不移动,引入跟随Transform或Vector的脚本又会造成更多的连带问题,VRTK的结构比较混乱,经过试验,在这里提出一个更简便的方法。

我们以SteamVR为例,它在VRTK中的结构位置如图所示:

UGUI在VRTK中的视野跟随

经过试验和调试,发现将Canvas放到如下图位置可直接实现跟随:

UGUI在VRTK中的视野跟随

此时的Canvas属性如下图所示:

UGUI在VRTK中的视野跟随

UGUI在VRTK中的视野跟随

在拽进去之后Canvas的Transform会非常奇怪,而这之后的工作是连接HTC VIVE进行实际调试,在播放状态看着视野调整Canvas位置,直到合适,然后记下此时的Transform角度和缩放(一般不动)值,停止调试,将Canvas的值改成记录的值。

到此为止,就完成了UGUI在VR中的视野跟随,也就是Canvas(交互控件)跟随摄像机移动。