在 Unity 中检测 Oculus Quest 1 和 2 耳机

Detect Oculus Quest 1 & 2 Headsets in Unity

我正在寻找一种方法来检测我的 VR 应用程序中使用的耳机的名称。我需要区分 Quest 1 & 2 以实现不同的控制器映射。 XRDevice.model 或 OVRPlugin.productName 之类的方法在文档中没有提供任何名称列表,而且由于 quest 2 是一个新模型,我没有在任何地方找到有关它的信息。任何帮助将不胜感激。

如果您 运行 直接使用 Quest 2(而不是 Oculus Link),您可以使用

OVRPlugin.SystemHeadset headset = OVRPlugin.GetSystemHeadsetType();
if(headset==OVRPlugin.SystemHeadset.Oculus_Quest){
// Quest 1 stuff here
}else if (headset==(OVRPlugin.SystemHeadset.Oculus_Quest+1)){
// Quest 2 stuff here
}

他们还没有将 Oculus Quest 2 添加到 SystemHeadset 枚举中,但它的位置上有一个“Placeholder_9”。为了清楚起见,我更喜欢“+1”。

如果您使用 link,Quest 1 将 return Oculus_Link_Quest,而我假设 Quest 2 为 (Oculus_Link_Quest+1)。但我没有'证实了这一点。

编辑:截至 2020 年 12 月 6 日,Quest1 和 Quest2 return“Oculus_Link_Quest”如果您使用的是 Oculus Link。