一、前言

我在使用Unity2018.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开发——获取按键事件相关推荐

  1. Unity+SteamVR开发——交互

    一.前言 本文使用两个工具为Unity2018.4.26和SteamVR2.6.1,SteamVR2.6.1相比之前的版本有了很大的改变,其中在交互上有了很大的提升,SteamVR2.6.1上给出的案 ...

  2. java 获取键盘事件,java获取键盘事件

    本人认为,实现它其实最 简单的莫属一个类,Java 本身就提供的,这个类就是 Scanner.先举个例子如下: import java.util.Scanner; /** * 测试从键盘读取用户的.. ...

  3. 《基于Qt的VR编辑器开发》(Yanlz+Unity+SteamVR+5G+AI+VR云游戏+Qt+编辑器+跨平台+人机交互+触发事件+立钻哥哥+==)

    <基于Qt的VR编辑器开发> <基于Qt的VR编辑器开发> 版本 作者 参与者 完成日期 备注 YanlzFramework_Qt_V01_1.0 严立钻 2019.09.04 ...

  4. unity基础开发----unity获取外部设备(方向盘)按键

    在unity中可能会用到外部的设备,比如是游戏手柄,赛车的方向盘手柄,在unity中 input manger中最多可以获取到10个按键,但是就像赛车的游戏手柄可能在电脑pc上可以显示,但是在unit ...

  5. linux驱动的中断函数,嵌入式Linux驱动开发(四)——字符设备驱动之中断方式以及中断方式获取按键值...

    之前我们完成了关于通过查询的方式获取按键键值的驱动程序,可以参考:嵌入式Linux开发--裸板程序之中断控制器. 虽然读取键值没有什么问题,但是测试程序占用CPU过高,一直在不断的查询,资源消耗过大, ...

  6. Android平台开发-Android keypad map-Android按键事件

    http://hi.baidu.com/i_know_all/blog/item/0a1dd8ecdde99acb2f2e2159.html 一.Android底层按键事件处理过程 在系统启动后,在文 ...

  7. Wear OS手表应用开发教程之-监听手表按键以及获取按键信息-WearableButtons

    本文目录 点击直达 Wear OS手表应用开发系列教程 点击直达 本文标签 `路过的年轻人啊,你是要用左手点个赞呢,还是要右手点个关注呢` 前言: 获取按键信息: 获取按键数量 获取按键信息 获取按键 ...

  8. 《游戏AI开发指南(基于Lua的人工智能在游戏中的应用)》(Yanlz+Unity+SteamVR+5G+AI+VR云游戏+Lua+人机交互+沙箱+导航+决策树+影响力地图+立钻哥哥+==)

    <游戏AI开发指南(基于Lua的人工智能在游戏中的应用)> <游戏AI开发指南(基于Lua的人工智能在游戏中的应用)> 版本 作者 参与者 完成日期 备注 YanlzAI_Lu ...

  9. arm shell 获取本地键盘输入值_linux下获取按键响应事件【转】

    1.问题 通过一个死循环将读取键盘对应的设备文件将触发键盘事件在屏幕上打印出来,按esc退出程序 代码是在unbuntu10.04编译执行通过的 2.input_event描述 在Linux内核中,i ...

最新文章

  1. (转载)详解Hive配置Kerberos认证
  2. rmdir命令--Linux命令应用大词典729个命令解读
  3. 软件测试之软件开发模型
  4. mysql客户端不支持_MySQL 8.0 - 客户端不支持服务器请求的身份验证协议; 考虑升级MySQL客户端...
  5. 这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)
  6. 一些lightbox插件(弹出层)
  7. java jvm dump文件_各种获取JVM DUMP的方法
  8. C语言函数嵌套学习实例
  9. xdg在Linux中的用法,Linux实用命令之xdg-open
  10. 共享单车智能锁方案的优劣势
  11. CANopen协议介绍
  12. 解决cannot find module providing package或cannot find main module
  13. win10锁屏聚集图片不更新,右上角没有出现喜欢的按钮,怎么办?
  14. TP-LINK 企业路由器 PPTP 配置
  15. quartus II使用
  16. vue 微信公众号 使用weixin-java-mp、JSSDK自定义分享
  17. 输出指定范围内的素数(质数)
  18. 浅谈供应链管理SCM的五大功能
  19. Quantum Espresso Hands-On实战训练(三)——DOS计算
  20. [转]客户和银行员工都说通存通兑“不合算”

热门文章

  1. # Linux shell终端设置代理服务器的方法
  2. Android Studio:增加蒙板/浮层特效
  3. 将verilog文件转化为bsf文件
  4. 喜报 | 冠骋信息获2022年苏州市工程技术研究中心认定
  5. Category (mathematics)
  6. 《Javascript高级程序设计》--读书笔记(二)
  7. linux磁盘无法识别移动硬盘
  8. Wordpress里面的Set Featured Image
  9. 提示找不到 XXX.dll 解决方法
  10. 访南京后,回昆山之夜