首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >联合检测Oculus HMD

联合检测Oculus HMD
EN

Stack Overflow用户
提问于 2014-11-21 21:36:04
回答 3查看 5.9K关注 0票数 5
代码语言:javascript
复制
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()方法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-06 20:51:06

从(至少)团结2018.2开始,使用Oculus实用程序,可以完成以下工作:

代码语言:javascript
复制
if (OVRManager.isHMDPresent) {
    // headset connected
}

我还要补充一点,您也可以订阅HMDMountedHMDUnmounted事件,这在某种程度上是相关的:

代码语言:javascript
复制
OVRManager.HMDMounted   += MyOnHMDMountedFunction();
OVRManager.HMDUnmounted += MyOnHMDUnmountedFunction();

当你戴上(HMDMounted)和/或脱下(HMDUnmounted)耳机时,这些耳机就会开火。

票数 2
EN

Stack Overflow用户

发布于 2014-11-24 07:47:11

编辑:这个答案是从2014年开始的,基于统一4。您可能想要使用其他答案。

我发现这种方法效果最好:

代码语言:javascript
复制
Ovr.Hmd.Detect() > 0

还请记住HMDLost/HMDAcquired事件,因此不必轮询每个帧:

代码语言:javascript
复制
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)

票数 2
EN

Stack Overflow用户

发布于 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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27070778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档