我正在嘗試爲使用兩個攝像頭的VR播放器開發HUD。一個是固定的相機,它指向我的HUD物體,深度= 1,另一個是深度= 0的主相機,用於跟蹤HMD並將HUD疊加在其上。禁用Unity中SteamVR攝像頭的頭部跟蹤?
但是,Unity,SteamVR或OpenVR迫使我的相機跟蹤播放器的HMD。在我詳盡的搜索後,我無法找到任何方法來阻止此行爲。然後,我嘗試將我的所有HUD對象都放在我的HUD相機上,並希望獲得最佳效果。
這導致不良痙攣的動作在所有的HUD對象:
項目層次結構:
[WorldHUD]
|__ Container (HUD)
|__ Camera (eye)
|__ TextMesh (Status) <- Is child of camera
[CameraRig]
|__ Camera (Head)
|__ Camera (eye)
[SteamVR]
我相信我真的需要在我的相機控制改造,使我可以防止其移動或停止它跟蹤玩家的HMD。
我已經嘗試更新Update()
和LateUpdate()
中的攝像頭位置,但沒有任何影響。我還花了很多時間修改/調試SteamVR和OVR腳本,這些腳本沒有正面結果,並且相機從未停止跟蹤。
我已經在我的相機父過程this suggested script嘗試:
NegateTracking.cs:
using UnityEngine;
using UnityEngine.VR;
public class NegateTracking : MonoBehaviour
{
void LateUpdate()
{
transform.position = -InputTracking.GetLocalPosition(VRNode.CenterEye);
transform.rotation = Quaternion.Inverse(InputTracking.GetLocalRotation(VRNode.CenterEye));
}
}
這導致相機點在一個方向,但仍然翻譯了一下。但是我注意到事情似乎更加波濤洶涌,並且覺得我要麼用錯了,要麼就是不夠。
我現在回來尋找方法來禁用某些相機的頭部追蹤,以便我能夠將它們放置在我的場景中。
有誰知道SteamVR/OpenVR如何控制這些相機的轉換?有什麼辦法可以禁用或重寫這種行爲嗎?
謝謝。