VR开发-VRTK(3.1.0)插件使用教程更新

2020-06-02 16:54:58 浏览数 (1)

最近插件更新了,很多以前的组件功能被修改了。表示蛋疼。。。

再说一次不要使用最新的Unity版本,尤其5.6,手柄渲染不出来

#Unity 5.5.1,目前官方最新是5.6.0

#SteamVR Plugin 1.2.1(目前是最新),

#VRTK 3.1.0(目前是最新)

1、VRTK插件控制管理器: VRTK_SDK Manager

手柄关系

如果是Steam VR平台就选此项

2、帧率显示:VRTK_FramesPerSecondViewer

一个预制体画布,用来显示帧率问题。

如何使用如图

效果图

这就是帧率效果

参数列表

3、移动功能

3-0:圆盘移动:VRTK_Touchpadmovement

此控件是可以进行圆盘移动的,同时会自动添加:

身体碰撞检测:VRTK_BodyPhysics(基于物理),里面的第一句话,Ps:翻译后:创建一个刚体和碰撞器在用户站允许物理相互作用和防止穿过墙。

看学好一个东西多刻苦

3-1:圆盘行走:VRTK_TouchpadWalking

VRTK新插件版本,如果使用圆盘行走只需要将此脚本添加到相关的手柄对象上

就可以很完美的行走了

但是现在远远不够,因为插件提示你需要使用新的脚本控制器了,这个脚本将在新版本删除,而且提示你要添加圆盘控制器:VRTK_TouchPadControl

3-2:圆盘控制器:VRTK_TouchPadControl

但是如果只加这个,充其量也就是控制圆盘而已,并不能办到移动

因为需要添加下面的

3-3 : 控制器事件:VRTK_Controller Event

那么问题来了,我们向哪里移动?

3-4:滑动控制代理: VRTK_SlideObjectControlAction

这个就是解决我们使用圆盘的滑块向哪个轴移动

因为这个默认X轴移动,所以我们还需要添加同样的脚本,利用Y轴移动

4、瞬移功能

在玩过上面的内容后,我们发现其实在VR中使用平移有点晕。所以瞬移是不二之选。

瞬移功能分两种,一种是直线瞬移,一种是曲线瞬移 之前的瞬移功能如何使用?

4-1:直线瞬移

旧版的API

简单激光指针:VRTK_SimplePointer

手柄控制器事件:VRTK_ControllerEvents

新版的API

这里分版本,因为SDK与Unity版本并不一致,这里公布我使用版本

#Unity 5.5.1,

#SteamVR Plugin 1.2.1(目前是最新),

#VRTK 3.1.0(目前是最新)

这里只需要添加:

VRTK_Pointer:从一个游戏对象上发出一个指针(如手柄控制器)

VRTK_StraightPointerRenderer:模拟激光束,指针渲染器发出彩色光束到连接的对象

VRTK_Controller Event:控制器事件主要调用底层按键使用

这个脚本一般单独挂载,如图所示。

VRTK_BasicTeleport :基本传送更新用户的X、Z在游戏世界中的位置的位置基类指针的尖端的位置,这是通过设置destinationmarkerset事件。

4-2:曲线瞬移

旧版的API

贝塞尔曲线激光指针:VRTK_BezierPointer:

手柄控制器事件:VRTK_ControllerEvents

将上述脚本挂载在我们手柄的控制器上就可以

曲线的

问题是,只有第一次定位的时候,才可以瞬移,后面需要重新按,才可以选择圆盘

新版的API

这里分版本,因为SDK与Unity版本并不一致,这里公布我使用版本

#Unity 5.5.1,

#SteamVR Plugin 1.2.1(目前是最新),

#VRTK 3.1.0(目前是最新)

实现曲线瞬移需要添加:

VRTK_Pointer:从一个游戏对象上发出一个指针(如手柄控制器)

VRTK_BezierPointerRenderer : 贝塞尔指针渲染器发出一个弯曲的线

VRTK_Controller Event:控制器事件主要调用底层按键API

在我们添加完上面的组件后,我们还需要添加下面的组件,主要作用是用来传送到指针选取的位置点,不管是基础传送还是曲线传送都需要这个脚本。

VRTK_BasicTeleport:基本传送更新用户的X、Z在游戏世界中的位置的位置基类指针的尖端的位置,这是通过设置destinationmarkerset事件。

5、抓取功能

VRTK_InteractableObject : 让游戏对象可以被交互

如果你想要交互某个游戏对象,那么你就必须将这个控件添加到游戏对象身上。其次要出发的那个物体必须具有碰撞器

如何使用VRTK的抓取功能呢

物体的脚本

6、游玩区域

房间区域设定:VRTK_RoomExtender可以点击查看我之前的案例介绍

允许游玩区跟随玩家移动,CameraRig 只在达到定义的圈的边缘才会移动

  • Additional Movement Multiplier:额外移动乘数: 圈边缘的移动放大因数。0就是不移动CameraRig。值越高模拟的游玩区域就越大,但是也可能就越不令人舒适。
  • Head Zone Radius:头部空间半径:游玩区不会发生移动的圆圈尺寸,一切都正常的。如果值太低在蹲下时就会感到不舒服。
  • Debug Transform:调试Transform: 这个调试状态下的transform让玩家周围的CameraRig不移动圆圈显示出来。在demo场景里就是一个在地板上的柱体,使用之前要关闭碰撞。
7、其他脚本

VRTK_SnapRotateObjectControlAction :快速旋转物体控制动作脚本用于快速旋转的控制对象在向量改变轴时

VRTK_WarpObjectControlAction:经物体控制动作脚本用于经纱控制对象给定距离的改变轴时

VRTK_RotateObjectControlAction:旋转物体控制动作脚本用于旋转控制对象在向量改变轴时

VRTK_TransformFollow : 更改一个游戏对象的转换以遵循另一个游戏对象的转换

0 人点赞