HTC vive开发:关于手柄按键对接控制
一、关于左右手柄的对应关系
- 两个手柄和SteamVR_TrackedObject.EIndex是对应的,一个是EIndex.Device2,另一个是EIndex.Device3(有编号的那个)
- 在场景中手柄先后连入,先后激活的是Controller(right)、Controller(left),并添加SteamVR_TrackedObject组件
二、手柄按键

1 - 菜单键
6 - 系统键(按下后手柄断开连接,再次按下手柄再次连接上)
7 - 扳机键
8 - 握持键
9 - 触摸板键
(1)点按
按键监听方式一:(SteamVR的方式,封装了OpenVR)
通过Device.GetPressDown / GetPressUp / GetPress获取按键事件

按键监听方式二:(OpenVR的方式,偏底层)
通过controllerState.ulButtonPressed & (SteamVR_Controller.ButtonMask.Trigger)获取按键的按下、松开两种状态

或者:

注:m_State、m_PrevState分别表示:当前帧状态、前一帧状态
获取按下时,触摸板的值

获取松开时,触摸板的值(这里必须使用前一帧的状态,因为松开时,当前帧的触摸的值为0)

(2)触摸
- 适用于触摸板键
- 适用于扳机键(和点按类似,只是键程更短)
方式二:

问题:触摸按下时,没有获取到当前帧触摸板的值!
(3)触摸板轴的获取
通过以上两种方式获取的VRControllerState_t,获取触摸板的轴
x = state.rAxis0.x
y = state.rAxis0.y
HTC vive开发:关于手柄按键对接控制的更多相关文章
- HTC vive开发:关于手柄按键
一.关于左右手柄的对应关系 两个手柄和SteamVR_TrackedObject.EIndex是对应的,一个是EIndex.Device2,另一个是EIndex.Device3(有编号的那个) 在场景 ...
- HTC Vive开发笔记之手柄控制
怎么安装设备,配置环境我就不说了,自行百度,教程很多也很简单.接下来说下Vive手柄的控制. 手柄是HTC Vive的重要交互手段,我们通过第一个图片应该对其有一个直观的了解了,总共是九个按钮: 第一 ...
- HTC Vive开发笔记之手柄震动
手柄震动的代码SteamVR_Controller脚本的最上面的注释里面就有说明,其实也很简单 // Example usage: //这个栗子是左手柄震动 右手震动只需把Leftmost换成Righ ...
- HTC Vive开发笔记之UI Guideline
本文转自HTC官方论坛,原址https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1641&extra=page=1 ...
- HTC Vive开发笔记之SteamVR插件集成
重要组件 SteamVR_Camera VR摄像机,主要功能是将Unity摄像机的画面进行变化,形成Vive中的成像画面 使用方法: l 在任一个摄像机上增加脚本 l 点击Expand按钮 完成以上操 ...
- unity3D HTC VIVE开发-物体高亮功能实现
在VR开发时,有时需要用到物体高亮的功能.这里使用Highlighting System v3.0.1.unitypackage插件实现. Highlighting System v3.0.1的介绍访 ...
- osgMulitiplerendertargets sample 中fbo使用【HTC VIVE开发中应用】
osgmultiplerendertargets.cpp ...................................... // now create the camera to do t ...
- Unity 5.4大赞:HTC Vive经典The lab渲染器开源
HTC Vive提供了一个不错的免费VR demo,最近1周仔细体验了一番. 仔细看了其安装文件,竟然是Unity 5.4beta版本(通过查log,知道Valve公司用的是最新的5.4.0b11版本 ...
- 用Unity开发HTC VIVE——手柄控制篇
写这篇文章的原因主要是因为现在虚拟现实非常的火爆但目前主流的虚拟现实设备(HTC VIVE)的教程却少的可怜,这个我深有体会.所以,我想将我平时开发中遇到的问题以及解决方法记录下来,分享给大家,若其中 ...
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)
http://blog.csdn.net/ystistheking/article/details/51553237 想交流的朋友我们可以微博互粉,我的微博黑石铸造厂厂长 ,缺粉丝啊 .....求粉求 ...
随机推荐
- MySQL8.0与5.7版本的下载、安装与配置
•软件下载 下载地址 [官网],点开该网址,点击 DOWNLOAD 来到如下页面: MySQL的版本介绍 MySQL Community Server 社区版本:开源免费,自由下载,但不提供官方技 ...
- 读书笔记:CSAPP 11章 网络编程
深入理解计算机系统 第11章 本章代码:Index of /afs/cs/academic/class/15213-f15/www/code/22-netprog2 其中包含本章课本示例代码,测试 T ...
- koa-generator - koa 脚手架
koa-generator - koa 脚手架 npm install -g koa-generator 创建 koa2 /tmp/foo && cd /tmp/foo 资料: 基于N ...
- 【mac】Alfred 无法调用Terminal
原因:是从mac app商店安装的Alfred class 解决方案:建议从官网下载安装:https://www.alfredapp.com/ 参考:https://www.alfredforum.c ...
- [置顶]
drools规则引擎因为内存泄露导致的内存溢出
进入这个问题之前,先了解一下drools: 在很多行业应用中比如银行.保险领域,业务规则往往非常复杂,并且规则处于不断更新变化中,而现有很多系统做法基本上都是将业务规则绑定在程序代码中. 主要存在的问 ...
- eclipse错误之Unhandled event loop exception PermGen space
原来一直用eclipse3.5,最近尝试升级到3.7和4.2,但不管是3.7还是4.2项目编译过程中总提示"Unhandled event loop exception PermGen sp ...
- 基于C#的壁纸管理器(插件版) - 开源研究系列文章
这几天无聊,想到原来的壁纸管理器应用能够实现成插件的形式,然后思考了一下,打算把原来壁纸管理器的代码用插件形式来进行实现,于是经过几天的努力,终于完成了插件版的壁纸管理器.以前有写过C#的插件的例子( ...
- Linux高级IO
readv.writev API: #include <sys/uio.h> ssize_t readv(int fd, const struct iovec* vector, int c ...
- Garnet发布 Redis不再是唯一选择
Garnet 是 Microsoft Research 的远程缓存存储,提供强大的性能(吞吐量和延迟).可扩展性.存储.恢复.集群分片.密钥迁移和复制功能. Garnet 可以与现有的 Redis 客 ...
- windows 10 wsl 环境 docker 无法正常启动 -The system cannot find the file specified
错误信息: error during connect: in the default daemon configuration on Windows, the docker client must b ...