VRTK使用心得(二):配置VRTK(基于最新3.2.1版)
本文是我的视频教程《HTC VIVE交互开发实例教程》的节选文字版,更多VRTK实例教程可参见蛮牛教育首页
![](https://upload-images.jianshu.io/upload_images/1199677-098993692a45caac.jpg)
VRTK的配置是使用该套工具集进行开发的第一步,本文以Asset Store版VRTK作为演示,最新版本为3.2.1,配置过程如下:
新建一个unity项目。
导入SteamVR Plugin,在弹出的SteamVR Setting对话框中选择"Accept All"。
图1图2导入VRTK。
图3在层级面板(Hierarchy)中,首先删除场景自带的MainCamera,这是因为后续导入的SteamVR预制体会自带一个Camera,为了保证场景中有且只有一个摄像机,故删除,然后保存场景。
新建一个空的GameObject(快捷键为Ctrl+Shift+N),挂载VRTK_SDK_MANAGER脚本,属性配置暂且不管。(建议此物体亦命名为VRTK_SDK_MANAGER)。
图4在其下新建一个空GameObject(快捷键为Alt+Shift+N),作为VRTK_SDK_MANAGER的子物体,同样建议命名为VRTK_SDK_SETUP,在其上挂载VRTK_SDK_SETUP脚本。
图5在Project面板中展开SteamVR文件夹,在Prefab文件夹下找到预制体[CameraRig],将其拖到VRTK_SDK_SETUP下,作为其子物体。
图6向上选中VRTK_SDK_SETUP,在检视面板中,找到"SDK Selection"下的"Quick Select"属性旁边有一个SDK列表,这里列出了VRTK所能支持的VR SDK种类,包括Daydream、Oculus等,值得注意的是列表中会有一个"Simulator"元素,因为VRTK提供了模拟器调试支持,所以如果选中此元素,则可以开启模拟器调试模式,开发者可以使用键盘鼠标配合进行一些简单的VR交互调试。此项目中我们使用的是SteamVR,故选择对应元素。选中以后,Actual Objects栏下的相关属性随即被自动填充,这是VRTK与SteamVR交互用到的相关组件引用。
图7再次向上,选择VRTK_SDK_MANAGER,在检视面板中,找到Setups栏,这是SDK的配置列表,点击底部的加号,会为配置列表添加元素,将刚才我们配置好的VRTK_SDK_SETUP拖到刚添加的卡槽里,即完成了关于使用SteamVR作为SDK被VRTK调用的配置过程,此时可以进行简单的测试查看。
图8进行左右控制器的配置。在VRTK_SDK_MANAGER下,添加两个空物体,分别命名为LeftController和RightController。同时将两个物体选中,为他们添加VRTK_ControllerEvents组件,用来向系统发送手柄控制事件,你可以在相关的属性下面设置某个特定按键触发所要使用的动作,比如抓取动作触发的按键,如果不想使用默认的Grip Button按下时触发,可以将Grab Toggle Button对应的动作改为Trigger Press。
图9实现让手柄发射指针。这里我们以为左手手柄添加直线型指针为例,选择要发射指针的Controller,为其添加VRTK_Pointer组件,此时还需要借助指针渲染器来定义指针的外观,如果需要直线型射线指针,则添加VRTK_StraightPointerRenderer组件,如果需要曲线型指针,则添加VRTK_BezierPointerRenderer组件。在相关组件添加完毕之后,将VRTK_StraightPointerRenderer拖到其上的VRTK_Pointer下的Pointer Renderer属性中。
图10重新选中VRTK_SDK_MANAGER,在检视面板中有Left Controller和Right Controller两个属性,这时将配置好的LeftController和RightController两个物体分别拖到对应的属性中。
图11实现瞬移。在VRTK_SDK_MANAGER下添加子物体,命名为PlayArea,在其上添加VRTK_BasicTeleport脚本即可实现瞬移(如图12),此时需保证实现瞬移的Controller上的VRTK_POINTER脚本的Enable Telepot属性被勾选(如图13)。在场景中添加一个Plane进行测试,由于瞬移基于射线碰撞检测,故需保证实现瞬移的区域有Collider,如BoxCollider等。
图12图13图14
点击Play进行测试,至此我们就实现了配置VRTK的全过程。
总结:
不同版本的VRTK,其配置过程会有所区别,对于具体版本的设置,可以在每个版本自带文档中找到,例如此版本的配置介绍可在VRTK文件夹下的README.pdf文档中的“Using VRTK in your own project
”小节中找到。关于如何查看VRTK版本,可以通过Window->VRTK->Surpport Info进行查看,如图13。
图15由以上步骤可见,VRTK的配置过程简单却繁琐,在日常开发中,开启一个VRTK项目,总是要重新配置这个过程,希望VRTK在以后的新版本中能够提供类似SteamVR中的CameraRig这样的prefab,开发者通过简单的属性修改即可完成VRTK的配置最好。
VRTK使用心得(二):配置VRTK(基于最新3.2.1版)相关推荐
- LINUX之samba服务器的安装与配置(基于redhat 6.3发行版)
linux系统之间或者linux系统和windows系统之间难免会有共享文件的时候,实现共享的方法有很多,这里简单介绍一下通过samba服务器实现linux系统与windows系统之间的文件共享的方法 ...
- VRTK使用心得(一):VRTK简介
本文是我的视频教程<HTC VIVE交互开发实例教程>的节选文字版,更多VRTK实例教程可参见蛮牛教育首页 一.什么是VRTK VRTK全称是Virtual Reality Toolkit ...
- 【树莓派入门】实验一 树莓派基本配置(基于Python)
[树莓派入门]初学树莓派(实验一 树莓派基本配置(基于Python) 一 格式化 SD 卡 二 下载官方镜像 三 烧录 SD 卡 四 Putty 连接 4.1 设置网络共享 4.2 查询树莓派的 IP ...
- STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读
记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...
- Ubuntu18.04配置搭建基于Gazebo的虚拟仿真平台(Px4):无人机(UAV)、无人车等模拟实验平台
这篇我觉得是写得比较详细完整的 摘自:https://dgzc.ganahe.top/ganahe/2021/uavgazebomoni.html Ubuntu18.04配置搭建基于Gazebo的虚拟 ...
- STM32学习心得二十六:DAC数模转换实验
记录一下,方便以后翻阅~ 主要内容: 1) DAC数模转换原理: 2) 寄存器和库函数介绍: 3) 相关实验代码解读. 实验功能:系统启动后,按WK_UP键,输出电压加200点,对应电压值200*3. ...
- STM32学习心得二十四:内部温度传感器原理及实验
记录一下,方便以后翻阅~ 主要内容: 1) STM32内部温度传感器概述: 2) 相关实验代码解读. 实验功能:系统启动后,实时将内部温度传感器的值传至串口助手上. 官方资料:<STM32中文参 ...
- tp5支持啥数据库_YznCMS(御宅男CMS)是基于最新TP5.1框架和layui2.5的后台管理系统
YznCMS(又名御宅男CMS)是基于最新TP5.1x框架和layui2.5x的后台管理系统.创立于2017年初,是一款完全免费开源的项目,他将是您轻松建站的首选利器.框架易于功能扩展,代码维护,方便 ...
- 做一个php 框架 书,搭建自己的 PHP 框架心得 (二)- 枕边书
搭建自己的 PHP 框架心得 (二)- 枕边书 续言 对于本次更新, 我想说: 本框架由本人挑时间完善, 而我还不是 PHP 大神级的人物, 所以框架漏洞难免, 求大神们指出 本框架的知识点应用都会写 ...
最新文章
- J. Med. Chem. | 通过负向设计优化筛选化合物库
- python函数注释 参数 省略号_解决python 输出是省略号的问题
- string转map集合_[系列文章] Go - Map 集合
- 《浙江省推动数据中心能效提升行动方案(2021-2025年)》出炉
- 基于Boost::beast模块的单元测试程序
- VTK:可视化之Glyph3DImage
- PHP中设置一个严格30分钟过期Session面试题的4种答案
- Linux操作系统内核启动参数详细解析
- 学习C/C++的简单方法
- ipython和pylab模式_为什么要使用IPython?
- Intellij IDEA 导入或运行流式处理框架storm以及java.lang.NoClassDefFoundError报错的解决方案
- C++11_范围for循环
- [Data Structure Algorithm] 哈希表
- web报表工具FineReport使用中遇到的常见报错及解决办法(三)
- 用python画多来a梦-python3里tkinter中canvas(画板)案例之哆啦A梦
- chmod命令的用法
- live2d动态壁纸android,Live2DViewerEX动态壁纸
- STM32程序设计(跑马灯)以及STM32原理图绘制(通过ad软件)
- iOS 唤起第三方App
- Java String类型入门 String str= abc god 中国 java反转每个单词