Gig*_*moi 5 c# unity-game-engine oculus
public Transform OculusPlayerPrefab;
public Transform DefaultPlayerPrefab;
void Start() {
Transform player = OVRDevice.IsHMDPresent() ?
(Transform)Instantiate(OculusPlayerPrefab) :
(Transform)Instantiate(DefaultPlayerPrefab);
player.position = transform.position;
}
Run Code Online (Sandbox Code Playgroud)
这应该检测 oculus rift HMD 是否已连接并实例化 oculus 播放器预制件,否则使用默认值。但是,IsHMDPresent()无论 Oculus Rift 是否连接,都会返回 false。然而,在 unity/oculus 集成包中,OVRMainMenu 使用 IsHMDPresent() 方法获得了预期的结果。
从(至少)Unity 2018.2 开始,使用 Oculus Utilities,可以进行以下操作:
if (OVRManager.isHMDPresent) {
// headset connected
}
Run Code Online (Sandbox Code Playgroud)
我要补充的是,您也可以订阅HMDMounted和HMDUnmounted事件,这有些相关:
OVRManager.HMDMounted += MyOnHMDMountedFunction();
OVRManager.HMDUnmounted += MyOnHMDUnmountedFunction();
Run Code Online (Sandbox Code Playgroud)
当您戴上(HMMDMounted)和/或取下(HMMDUnmounted)耳机时,这些将会触发。