本文是我的视频教程《HTC VIVE交互开发实例教程》的节选文字版,更多VRTK实例教程可参见蛮牛教育首页

VRTK的配置是使用该套工具集进行开发的第一步,本文以Asset Store版VRTK作为演示,最新版本为3.2.1,配置过程如下:

  1. 新建一个unity项目。

  2. 导入SteamVR Plugin,在弹出的SteamVR Setting对话框中选择"Accept All"。

    图1

    图2

  3. 导入VRTK。

    图3

  4. 在层级面板(Hierarchy)中,首先删除场景自带的MainCamera,这是因为后续导入的SteamVR预制体会自带一个Camera,为了保证场景中有且只有一个摄像机,故删除,然后保存场景。

  5. 新建一个空的GameObject(快捷键为Ctrl+Shift+N),挂载VRTK_SDK_MANAGER脚本,属性配置暂且不管。(建议此物体亦命名为VRTK_SDK_MANAGER)。

    图4

  6. 在其下新建一个空GameObject(快捷键为Alt+Shift+N),作为VRTK_SDK_MANAGER的子物体,同样建议命名为VRTK_SDK_SETUP,在其上挂载VRTK_SDK_SETUP脚本。

    图5

  7. 在Project面板中展开SteamVR文件夹,在Prefab文件夹下找到预制体[CameraRig],将其拖到VRTK_SDK_SETUP下,作为其子物体。

    图6

  8. 向上选中VRTK_SDK_SETUP,在检视面板中,找到"SDK Selection"下的"Quick Select"属性旁边有一个SDK列表,这里列出了VRTK所能支持的VR SDK种类,包括Daydream、Oculus等,值得注意的是列表中会有一个"Simulator"元素,因为VRTK提供了模拟器调试支持,所以如果选中此元素,则可以开启模拟器调试模式,开发者可以使用键盘鼠标配合进行一些简单的VR交互调试。此项目中我们使用的是SteamVR,故选择对应元素。选中以后,Actual Objects栏下的相关属性随即被自动填充,这是VRTK与SteamVR交互用到的相关组件引用。

    图7

  9. 再次向上,选择VRTK_SDK_MANAGER,在检视面板中,找到Setups栏,这是SDK的配置列表,点击底部的加号,会为配置列表添加元素,将刚才我们配置好的VRTK_SDK_SETUP拖到刚添加的卡槽里,即完成了关于使用SteamVR作为SDK被VRTK调用的配置过程,此时可以进行简单的测试查看。

    图8

  10. 进行左右控制器的配置。在VRTK_SDK_MANAGER下,添加两个空物体,分别命名为LeftController和RightController。同时将两个物体选中,为他们添加VRTK_ControllerEvents组件,用来向系统发送手柄控制事件,你可以在相关的属性下面设置某个特定按键触发所要使用的动作,比如抓取动作触发的按键,如果不想使用默认的Grip Button按下时触发,可以将Grab Toggle Button对应的动作改为Trigger Press。

    图9

  11. 实现让手柄发射指针。这里我们以为左手手柄添加直线型指针为例,选择要发射指针的Controller,为其添加VRTK_Pointer组件,此时还需要借助指针渲染器来定义指针的外观,如果需要直线型射线指针,则添加VRTK_StraightPointerRenderer组件,如果需要曲线型指针,则添加VRTK_BezierPointerRenderer组件。在相关组件添加完毕之后,将VRTK_StraightPointerRenderer拖到其上的VRTK_Pointer下的Pointer Renderer属性中。

    图10

  12. 重新选中VRTK_SDK_MANAGER,在检视面板中有Left Controller和Right Controller两个属性,这时将配置好的LeftController和RightController两个物体分别拖到对应的属性中。

    图11

  13. 实现瞬移。在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版)相关推荐

  1. LINUX之samba服务器的安装与配置(基于redhat 6.3发行版)

    linux系统之间或者linux系统和windows系统之间难免会有共享文件的时候,实现共享的方法有很多,这里简单介绍一下通过samba服务器实现linux系统与windows系统之间的文件共享的方法 ...

  2. VRTK使用心得(一):VRTK简介

    本文是我的视频教程<HTC VIVE交互开发实例教程>的节选文字版,更多VRTK实例教程可参见蛮牛教育首页 一.什么是VRTK VRTK全称是Virtual Reality Toolkit ...

  3. 【树莓派入门】实验一 树莓派基本配置(基于Python)

    [树莓派入门]初学树莓派(实验一 树莓派基本配置(基于Python) 一 格式化 SD 卡 二 下载官方镜像 三 烧录 SD 卡 四 Putty 连接 4.1 设置网络共享 4.2 查询树莓派的 IP ...

  4. STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读

    记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...

  5. Ubuntu18.04配置搭建基于Gazebo的虚拟仿真平台(Px4):无人机(UAV)、无人车等模拟实验平台

    这篇我觉得是写得比较详细完整的 摘自:https://dgzc.ganahe.top/ganahe/2021/uavgazebomoni.html Ubuntu18.04配置搭建基于Gazebo的虚拟 ...

  6. STM32学习心得二十六:DAC数模转换实验

    记录一下,方便以后翻阅~ 主要内容: 1) DAC数模转换原理: 2) 寄存器和库函数介绍: 3) 相关实验代码解读. 实验功能:系统启动后,按WK_UP键,输出电压加200点,对应电压值200*3. ...

  7. STM32学习心得二十四:内部温度传感器原理及实验

    记录一下,方便以后翻阅~ 主要内容: 1) STM32内部温度传感器概述: 2) 相关实验代码解读. 实验功能:系统启动后,实时将内部温度传感器的值传至串口助手上. 官方资料:<STM32中文参 ...

  8. tp5支持啥数据库_YznCMS(御宅男CMS)是基于最新TP5.1框架和layui2.5的后台管理系统

    YznCMS(又名御宅男CMS)是基于最新TP5.1x框架和layui2.5x的后台管理系统.创立于2017年初,是一款完全免费开源的项目,他将是您轻松建站的首选利器.框架易于功能扩展,代码维护,方便 ...

  9. 做一个php 框架 书,搭建自己的 PHP 框架心得 (二)- 枕边书

    搭建自己的 PHP 框架心得 (二)- 枕边书 续言 对于本次更新, 我想说: 本框架由本人挑时间完善, 而我还不是 PHP 大神级的人物, 所以框架漏洞难免, 求大神们指出 本框架的知识点应用都会写 ...

最新文章

  1. J. Med. Chem. | 通过负向设计优化筛选化合物库
  2. python函数注释 参数 省略号_解决python 输出是省略号的问题
  3. string转map集合_[系列文章] Go - Map 集合
  4. 《浙江省推动数据中心能效提升行动方案(2021-2025年)》出炉
  5. 基于Boost::beast模块的单元测试程序
  6. VTK:可视化之Glyph3DImage
  7. PHP中设置一个严格30分钟过期Session面试题的4种答案
  8. Linux操作系统内核启动参数详细解析
  9. 学习C/C++的简单方法
  10. ipython和pylab模式_为什么要使用IPython?
  11. Intellij IDEA 导入或运行流式处理框架storm以及java.lang.NoClassDefFoundError报错的解决方案
  12. C++11_范围for循环
  13. [Data Structure Algorithm] 哈希表
  14. web报表工具FineReport使用中遇到的常见报错及解决办法(三)
  15. 用python画多来a梦-python3里tkinter中canvas(画板)案例之哆啦A梦
  16. chmod命令的用法
  17. live2d动态壁纸android,Live2DViewerEX动态壁纸
  18. STM32程序设计(跑马灯)以及STM32原理图绘制(通过ad软件)
  19. iOS 唤起第三方App
  20. Java String类型入门 String str= abc god 中国 java反转每个单词

热门文章

  1. 【EasyRL强化学习学习笔记】01_相关原理与概述
  2. android客户端控制树莓派GPIO点亮LED灯
  3. 在线医生和医疗服务的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. 小学一年级语文考试试题【15】
  5. JSP写一个简单的登录界面
  6. [Android]用迅雷去下载更新我们的Sdk.嘿嘿``~
  7. 专升本计算机基础笔记-1
  8. C#中将字符转换为键盘的键值keycode
  9. 基于图数据的研报词关联之聚合分析
  10. 图片隐写 放大放大再放大_放大结论