SteamVR_Events监听的先后顺序

在SteamVR插件中,SteamVR_Events的DeviceConnected这个事件是监听设备连接的,这个监听有一个坑,在监听到设备连接时有时无法马上获得SteamVR_TrackedObject中改变后的index值,具体如下描述操作。

----------------------------------------------------------------以下为问题描述,解决方案在最后------------------------------------------------------------

新建一个空场景,如图1。(注意场景中gameobject的顺序

                                                                                               图1

图1中的三个物体均挂载监听DeviceConnected的脚本,脚本内容如图2,在监听到连接时马上去获取SteamVR_TrackedObject中的index的值,此时现将手柄全部关闭,即没有手柄连接,然后运行demo。

                                                                                                    图2

打印结果如图3

                                                                                                图3

此时手柄还未连接,所以可以看到vrRightEIndex与vrLeftEIndex均为NONE,现在在demo运行时将手柄连接,触发此连接监听(第一次触发是因为头显设备连接),打印如图4,此时的SteamVR_TrackedObject如图5

                                                                                                     图4

                                                                                                         图5

图4可以看到监听事件在CameraRig之后添加的可以即刻获取到连接之后的index值,但之前添加的只能获取到连接之前的index值。

---------------------------------------------------------------------解决办法----------------------------------------------------------------------------------------

建议需要用到设备连接状态监听时,确保事件监听必然是在之后添加(例:用代码开启或关闭),这样就可以在监听到设备连接时即刻可以获取到index的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值