SteamVR使用VR_TK插件完成VR中的瞬移交互功能

VR_TK插件介绍。

全名为:SteamVR unity toolskit,它是依赖于SteamVR插件的,这个插件能帮助我们完成许多交互功能(轮子):

  • 普通控制器按钮事件。
  • 控制器世界指针(激动指示器)
  • 玩家步态
  • 使用控制器完成“拼抢”、“持物”等操作。
  • 使用控制器对象交互。
  • 游戏转化为对象交互的UI元素。
      它的工具包项目分为三个主要的部分
  • 预制件
  • 脚本
  • Examples

SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第1张图片
Paste_Image.png

  更多简介以及 READMEhttps://github.com/thestonefox/VRTK

SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第2张图片
Paste_Image.png

  有很详细的帮助文档


SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第3张图片
Paste_Image.png
使用VR_TK完成Teleport(瞬移)

由于VR_TK是基于SteamVR插件的,所以我们首先需要导入SteamVR插件可以在Assets Store中下载最新版本的SteamVR插件。

SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第4张图片
Paste_Image.png
  • 选择一个手柄来完成手柄的Teleport功能。
Paste_Image.png
  • 为它添加VRTK_ControllerEvents脚本

SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第5张图片
Paste_Image.png

   这个脚本是用来监听HTC Vive手柄上的所有输入的。

  • 添加了事件监听的脚本以后,我们就需要添加Teleport功能,这里使用贝塞尔曲线的指针进行实现。(当然你也可以使用VRTK_Simple Pointer进行实现,但是很明显交互上和体验上都和瞬移很不符合逻辑。)
  • 为手柄添加VRTK_Bezier Pointer脚本(将直线的激光指示器指向目标点的指针通过贝塞尔曲线指向新的目标点,需要自己仔细研究可以去github上看看帮助文档,也可以自己看看脚本里的代码都是开源的)需要进行Teleport功能勾选上就行
SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第6张图片
Paste_Image.png
  • Layers To Ignore:类似于遮罩,将使这个layer层不会接受射线,因为我们不可能可以瞬移到任何地方去,我们将我们不想瞬移到的层,在这里面进行选择。

  • 接着为我们的CameraRig添加处理瞬移移动相关的VRTK_Basic Teleport脚本。(因为我们的瞬移是Camera瞬移)

SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第7张图片
Paste_Image.png
  • VRTK_Basic Teleport脚本中的瞬移实现DoTeleport方法:


    SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第8张图片
    Paste_Image.png
SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第9张图片
Paste_Image.png
  • 你也可以通过以下属性去改变这个瞬移线的材质,密度,长度等属性。
SteamVR使用VR_TK插件完成VR中的瞬移交互功能_第10张图片
Paste_Image.png

你可能感兴趣的:(SteamVR使用VR_TK插件完成VR中的瞬移交互功能)