public Transform OculusPlayerPrefab;
public Transform DefaultPlayerPrefab;
void Start() {
Transform player = OVRDevice.IsHMDPresent() ?
(Transform)Instantiate(OculusPlayerPrefab) :
(Transform)Instantiate(DefaultPlayerPrefab);
player.position = transform.position;
}这将检测oculus裂谷HMD是否已连接并实例化oculus player预制件,否则为默认值。但是,无论Oculus是否连接,IsHMDPresent()都会返回false。然而,在unity/oculus集成包中,OVRMainMenu使用了带有预期结果的IsHMDPresent()方法。
发布于 2019-06-06 20:51:06
从(至少)团结2018.2开始,使用Oculus实用程序,可以完成以下工作:
if (OVRManager.isHMDPresent) {
// headset connected
}我还要补充一点,您也可以订阅HMDMounted和HMDUnmounted事件,这在某种程度上是相关的:
OVRManager.HMDMounted += MyOnHMDMountedFunction();
OVRManager.HMDUnmounted += MyOnHMDUnmountedFunction();当你戴上(HMDMounted)和/或脱下(HMDUnmounted)耳机时,这些耳机就会开火。
发布于 2014-11-24 07:47:11
编辑:这个答案是从2014年开始的,基于统一4。您可能想要使用其他答案。
我发现这种方法效果最好:
Ovr.Hmd.Detect() > 0还请记住HMDLost/HMDAcquired事件,因此不必轮询每个帧:
bool oculusPresent=false;
void CheckOculusPresence() {
oculusPresent=Ovr.Hmd.Detect() > 0;
}
void Start() {
CheckOculusPresence();
OVRManager.HMDAcquired+=CheckOculusPresence;
OVRManager.HMDLost+=CheckOculusPresence;
}(oculus SDK 0.4.3/unity3d 4.5.5,OSX/Windows)
发布于 2015-11-04 12:10:47
团结现在有了一个内在的方式来发现这一点。
http://forum.unity3d.com/threads/simply-detecting-the-oculus-rifts-presence-solved.294089/#post-2368233
博士:http://docs.unity3d.com/ScriptReference/VR.VRDevice-isPresent.html
https://stackoverflow.com/questions/27070778
复制相似问题