> 文档中心 > SteamVR 2.x 动作绑定与获取(2)

SteamVR 2.x 动作绑定与获取(2)

通过上章内容,我们知道,default下默认定义了很多动作,当然,我们也可以自己自定义动作。
在正式开始之前,先来了解动作,顾名思义,动作就是VR设备按下了按键去做某件事,SteamVR 2.x之后,动作可自定义和编辑,在项目中设置动作,动作对应的键在外部设置,这样应用程序打包出来之后,瞬移、UI交互、拾取物体等动作可以直接通过SteamVR修改,不需要像老版SteamVR一样,需要改动代码/重新打包,下面直接上干货。

一、动作添加与绑定

首先VR设备需要连接到电脑上,安装SteamVR驱动
在SteamVR Input窗口新建BuckleTrigger动作,配置如下
SteamVR 2.x 动作绑定与获取(2)
在SteamVR Input窗口点击Open binding UI
SteamVR 2.x 动作绑定与获取(2)
弹出后看到的是这个界面,我这边使用的Oculus,所以设置的是Oculus按键
SteamVR 2.x 动作绑定与获取(2)
可以点击当前控制器,查看当前支持哪些VR设备的设置,直接选对应的设备即可
SteamVR 2.x 动作绑定与获取(2)
SteamVR 2.x 动作绑定与获取(2)
点击编辑
SteamVR 2.x 动作绑定与获取(2)
可以看到如下界面
SteamVR 2.x 动作绑定与获取(2)
左上角default上有标红的显示1,代表有一个动作未绑定,这里开始演示绑定流程,在扳机键栏点击+
SteamVR 2.x 动作绑定与获取(2)
作为按键来使用
SteamVR 2.x 动作绑定与获取(2)
设置点击动作,设置为我们在Unity中添加的buckletrigger动作
SteamVR 2.x 动作绑定与获取(2)
SteamVR 2.x 动作绑定与获取(2)
最后别忘了点击勾来保存
SteamVR 2.x 动作绑定与获取(2)

二、动作获取

怎么新建工程和导入SteamVR请看上一章
新建场景,删除默认相机,将Player预制件拖拽至场景中,新建scirpt脚本,直接上代码

using UnityEngine;using Valve.VR;public class Test : MonoBehaviour{    private void Start()    { SteamVR_Actions.default_BuckleTrigger.onStateDown += Default_BuckleTrigger_onStateDown; SteamVR_Actions.default_BuckleTrigger.onStateUp += Default_BuckleTrigger_onStateUp;    }    ///     /// 扳机动作按下监听    ///     ///     ///     private void Default_BuckleTrigger_onStateDown(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource)    { Debug.Log("扣动了扳机键");    }    ///     /// 扳机动作抬起监听    ///     ///     ///     private void Default_BuckleTrigger_onStateUp(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource)    { Debug.Log("松开了扳机键");    }}

脚本随便拖拽到哪个物体上,直接运行,戴上设备扣动扳机测试,可以看到打印了信息
SteamVR 2.x 动作绑定与获取(2)