一款能让Vive开发变得简单的插件——Vive Input Utility使用指南
2016-11-02 11:00
435 查看
相信各位小伙伴们在使用SteamVR Unity Plugin的过程中应该都遇到过这样的问题:获取设备很麻烦,设备在重启后indexID会改变从而导致设置好的左右手设备出现交错;无法与UGUI的事件系统连接导致无法使用UGUI等等很多问题。(见图1)
官方推出Vive Input Utility Unity Plugin,解决了以上的一些问题,为大家的开发提供了很好的便利。大家可以在Unity AssetStore中下载到,https://www.assetstore.unity3d.com/cn/#!/content/64219。
本插件的联络邮箱为 vivesoftware@htc.com,如果有问题可以通过这个邮箱反馈。
我们会推出Vive Input Utility使用教程系列,
第一篇:Vive Input Utility的使用指南 https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1708&extra=page%3D1
第二篇:Vive Input Utility API详解 https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1720&extra=page%3D1
第三篇:Vive Input Utility手把手教程https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1728&extra=page%3D1
一、简介:
Vive Input Utility是一个基于SteamVR插件的开发工具。能让开发者更方便的控制Vive设备。我们同时也开发了在3D环境下能运用的鼠标指针方案,并适配Unity Event System。通过使用这个工具,开发者可以省下很多用来管理Vive设备的冗余代码。
二、目的:
Unity SteamVR的插件给开发者提供了一个C#的接口来和Vive设备交互。但在获得控制器输入状态或者设备姿态会形成很多冗余代码:
不论控制器是否被连接,你都必须不断从SteamVR_ControllerManager获取正确的设备索引;
定位SteamVR_ControllerManager也需要花很多功夫;
所以,我们的主要目标就是给开发者提供便利的接口并减少冗余工作。
三、主要特点:
使用静态函数获取设备输入:按键输出、手柄位置;
使用ViveRaycaster component实现3D鼠标指针,并适配Unity Event System;
四、静态接口:
获取按钮事件:
原本要通过SteamVR脚本来找到设备;
(见图2)
静态类Vive Input提供了一个更简洁的API;
(见图3)
监听按钮事件:
ViveInput同样提供回调类型监听器;
(见图4)
获得追踪pose:
静态类VivePose提供了获得设备pose的API;
(见图5)
五、辅助组件:
Vive Pose Tracker
类似于SteamVR_TrackedObject,但目标设备使用ViveRole.DeviceRole替代了device index
(见图6)
Pose Modifier
这是一个pose tracker的追踪效果脚本
实现抽象类PoseTracker.BasePoseModifier可以编写自定义的追踪效果。
有无Pose Modifier对比(见图7)
有无Pose Modifier视频效果
https://vimeo.com/171724218
https://vimeo.com/171724270
Vive射线器及射线方法:
Vive Raycaster是一个发送vive按钮事件的射线事件脚本。
通过结合Vive Pose Tracker和Vive Raycaster,你的控制器可以像一个3D鼠标一样使用。
Vive Raycaster必须和Raycast方法一起使用。(见图8)
比如,你可以像这样布置来和UGUI菜单交互。(见图9)
更多的例子(见图10):https://vimeo.com/169824408 https://vimeo.com/169824438
事件系统处理器:
你必须布置一个事件系统处理器去获取由事件射线器发出的事件:
在对象上增加事件处理器组件(从IEventSystemHandler派生出来)
在对象或者子对象上增加可被射线触发的组件(如Collider/Collider2D/Graphic)
(见图11)
今天的教程就到这边结束了,下一篇会给大家带来Vive Input Utility API接口的介绍。请大家关注。大家有什么问题可以在楼下讨论。
本帖最后由
Shengjie Zhang 于 2016-9-1 10:59 编辑
官方推出Vive Input Utility Unity Plugin,解决了以上的一些问题,为大家的开发提供了很好的便利。大家可以在Unity AssetStore中下载到,https://www.assetstore.unity3d.com/cn/#!/content/64219。
本插件的联络邮箱为 vivesoftware@htc.com,如果有问题可以通过这个邮箱反馈。
我们会推出Vive Input Utility使用教程系列,
第一篇:Vive Input Utility的使用指南 https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1708&extra=page%3D1
第二篇:Vive Input Utility API详解 https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1720&extra=page%3D1
第三篇:Vive Input Utility手把手教程https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1728&extra=page%3D1
一、简介:
Vive Input Utility是一个基于SteamVR插件的开发工具。能让开发者更方便的控制Vive设备。我们同时也开发了在3D环境下能运用的鼠标指针方案,并适配Unity Event System。通过使用这个工具,开发者可以省下很多用来管理Vive设备的冗余代码。
二、目的:
Unity SteamVR的插件给开发者提供了一个C#的接口来和Vive设备交互。但在获得控制器输入状态或者设备姿态会形成很多冗余代码:
不论控制器是否被连接,你都必须不断从SteamVR_ControllerManager获取正确的设备索引;
定位SteamVR_ControllerManager也需要花很多功夫;
所以,我们的主要目标就是给开发者提供便利的接口并减少冗余工作。
三、主要特点:
使用静态函数获取设备输入:按键输出、手柄位置;
使用ViveRaycaster component实现3D鼠标指针,并适配Unity Event System;
四、静态接口:
获取按钮事件:
原本要通过SteamVR脚本来找到设备;
(见图2)
静态类Vive Input提供了一个更简洁的API;
(见图3)
监听按钮事件:
ViveInput同样提供回调类型监听器;
(见图4)
获得追踪pose:
静态类VivePose提供了获得设备pose的API;
(见图5)
五、辅助组件:
Vive Pose Tracker
类似于SteamVR_TrackedObject,但目标设备使用ViveRole.DeviceRole替代了device index
(见图6)
Pose Modifier
这是一个pose tracker的追踪效果脚本
实现抽象类PoseTracker.BasePoseModifier可以编写自定义的追踪效果。
有无Pose Modifier对比(见图7)
有无Pose Modifier视频效果
https://vimeo.com/171724218
https://vimeo.com/171724270
Vive射线器及射线方法:
Vive Raycaster是一个发送vive按钮事件的射线事件脚本。
通过结合Vive Pose Tracker和Vive Raycaster,你的控制器可以像一个3D鼠标一样使用。
Vive Raycaster必须和Raycast方法一起使用。(见图8)
比如,你可以像这样布置来和UGUI菜单交互。(见图9)
更多的例子(见图10):https://vimeo.com/169824408 https://vimeo.com/169824438
事件系统处理器:
你必须布置一个事件系统处理器去获取由事件射线器发出的事件:
在对象上增加事件处理器组件(从IEventSystemHandler派生出来)
在对象或者子对象上增加可被射线触发的组件(如Collider/Collider2D/Graphic)
(见图11)
今天的教程就到这边结束了,下一篇会给大家带来Vive Input Utility API接口的介绍。请大家关注。大家有什么问题可以在楼下讨论。
本帖最后由
Shengjie Zhang 于 2016-9-1 10:59 编辑
相关文章推荐
- 一款能让Vive开发变得简单的插件——Vive Input Utility使用指南
- 一款能让Vive开发变简单的插件——Vive Input Utility
- 一款能让Vive开发变简单的插件——Vive Input Utility手把手教程
- 一款能让Vive开发变简单的插件——Vive Input Utility手把手教程
- 一款能让Vive开发变得简单的插件——Vive Input Utility API详解
- 【Unity+Vive】第一篇:Vive Input Utility的使用指南
- 使用SteamVR Plugins插件为基础,来介绍Vive开发的入门,重点讲解设备的激活和控制接口
- 使用Eclipse+maven3插件开发一个Servlet3.0的简单例子
- Eclipse4.x插件开发实践02-源码使用指南
- bootstrap 上传图片插件 file-input 的简单使用
- 走进VR开发世界(5)—— 使用Cocos开发一款简单的3D VR抓钱游戏
- 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用
- 2016年让开发工作变得更简单的小事,Xcode插件
- 让开发变得更快速、更简单——类型化DataSet的使用
- iOS开发进阶 - 日志输出框架CocoaLumberjack与XcodeColors插件的简单使用(swift版)
- VS.NET 2003集成环境插件开发指南(二)----使用窗口
- VS.NET 2003集成环境插件开发指南(二)----使用窗口
- Atom下 Emmet 插件使用的简单指南
- 使用Eclipse+maven3插件开发一个Servlet3.0的简单例子
- 【Java插件开发】JFreeChart简单使用