失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Unity+SteamVR开发——获取按键事件

Unity+SteamVR开发——获取按键事件

时间:2023-07-21 21:41:46

相关推荐

Unity+SteamVR开发——获取按键事件

一、前言

我在使用Unity.4.26+SteamVR2.6.1开发VR应用的时候,需要使用菜单键来呼出用户的交互UI界面,但是我现在没法调用这个菜单键的呼出事件。SteamVR2.0之后的版本就不在像之前那样可以直接监听到每个按钮的事件,需要手动自己设置菜单按钮的绑定。

二、实现

2.1、按键绑定设置

导入SteamVR的插件到Unity中,点击菜单栏windows/SteamVR input打开如图1所示的SteamVR Input的设置界面,并点击Actions/In下面的的“+”来在default中增加动作定义,可以命名为“Menu",然后点击”Save and generate“保存,

图1

最后点击“Open binding UI"打开按键的绑定设置界面如图2所示,左边的”当前按键设置”下面的“vive_controller"为系统默认的手柄设置,右边为旋转具体哪个硬件设备,如图2所示选中的是手柄,如果选中的是其他的如头盔,打开的将会是头盔的绑定设置界面。点击vive_controller的编辑按钮进入编辑界面

图2

如图3所示在编辑界面中,默认为镜像模式,也即设置一边的手柄,另外的手柄会同步,如果想单独为某个手柄设置按键,可以不勾选这个镜像模式。找到菜单并点击右边的+为菜单按键进行实际的绑定,如图4所示

图3

在弹出的选择面板中选择”按键“

图4

然后 点击如图5所示的绑定按钮

图5

在弹出的面框中可以看到刚设置的Menu,如图6所示,选中它单击,

图6

然后再点图5中更多选项下面的√来保存设置,最终效果如图7所示,点击√保存好设置之后的按钮会变成如图7所示的笔状按钮,点击这个可以进行修改,然后点击”保存个人按键设置“,即可进行保存,保存后点击返回可以再界面中看到如图8所示的个人下面

图7

的配置即为我们刚刚编辑好并保存的配置,如果点击了”替换默认按键设置“会再图8中出现官方按键设置,也即此时官方默认的按键设置被刚刚的设置替换了,当然这些设置都只是针对当前的工程有效。

图8

2.2、代码实现

新建一个用来测试的脚本,代码如下:

[SerializeField]private SteamVR_Action_Boolean menu = SteamVR_Input.GetBooleanAction("Menu");public SteamVR_Input_Sources curIndex;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){if (menu.GetStateDown(curIndex)){Debug.Log("ddddddddd");}}

再控制面板上设置如图9所示 ,其中Menu选择2.1设置的Menu,curIndex为SteamVR_Input_Sources 的索引,是用来获取具体的设备索引的,这里可以选择Any,因为只在左、右手柄中绑定了该按键

图9

最后查看打印的信息,实现完毕。

三、总结

3.1、先要按键绑定其实相比以前稍显复杂,不过据说是为了大一统的设备绑定,相对开发者还是更方便;

3.2、代码现在写起来特别简单。

如果觉得《Unity+SteamVR开发——获取按键事件》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。