public Transform OculusPlayerPrefab;
public Transform DefaultPlayerPrefab;
void Start() {
    Transform player = OVRDevice.IsHMDPresent() ?
        (Transform)Instantiate(OculusPlayerPrefab) :
        (Transform)Instantiate(DefaultPlayerPrefab);
    player.position = transform.position;
}

这将检测oculus rift hmd是否已连接并实例化oculus player prefact,否则为默认值。然而,无论眼裂是否连通,IsHMDPresent()都返回false。但是,在unity/oculus集成包中,ovrmainmenu使用ishmdpresent()方法来获得预期的结果。

最佳答案

截至(至少)Unity 2018.2,使用Oculus实用程序,进行以下工作:

if (OVRManager.isHMDPresent) {
    // headset connected
}

我要补充的是,您还可以订阅HMDMountedHMDUnmounted事件,这两个事件有些相关:
OVRManager.HMDMounted   += MyOnHMDMountedFunction();
OVRManager.HMDUnmounted += MyOnHMDUnmountedFunction();

当你戴上和/或取下耳机时,它们会开火。

10-08 09:37
查看更多