HTC VIVE如何检测是否佩戴头盔

第一次玩htc vive,需要播一个vr视频,项目需求是带上头盔播视频,摘下头盔停止播放,用的在这里插入图片描述
在网上查了一些办法,都不适合,比如if (XRDevice.isPresent)
{

}
再比如
if (XRDevice.userPresence == UserPresenceState.Present)
{

}
再比如
if (VRDevice.userPresence == UserPresenceState.Present)
{

}
还有这个
在这里插入图片描述

这些方法在新版本unity中都不实用,于是就从SteamVR(从Asset Store下载)入手,然后惊奇的发现它有一个Player预制体,
这货居然自带头盔检测
在这里插入图片描述
打开它的脚本,找到 protected virtual void Update()这个方法,然后在这个下面写自己的逻辑就好了
protected virtual void Update()
{
if (SteamVR.initializedState != SteamVR.InitializedStates.InitializeSuccess)
return;

        if (headsetOnHead != null)
        {
            if (headsetOnHead.GetStateDown(SteamVR_Input_Sources.Head))//发现头盔带上了
            {
                Debug.Log("<b>SteamVR Interaction System</b> Headset placed on  head");
                video.Play();
            }
            else if (headsetOnHead.GetStateUp(SteamVR_Input_Sources.Head))//摘下头盔
            {
                Debug.Log("<b>SteamVR Interaction System</b> Headset removed");
                video.Stop();
            }
        }
    }

好了,这样就完美解决了,我的项目也结束了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值