VRTK - 3.传送


  VRTK传送小笔记,使用手柄在场景中进行传送移动,包括传送的基本设置,传送的几种方式,限制传送。

一、基本的传送

在场景中进行基本的移动操作,使用到了VRTK_Pointer(用来发出射线),VRTK_StraightPointerRenderer(渲染射线),VRTK_BasicTeleport这几个脚本组件。
  在手柄上添加VRTK_Pointer和VRTK_StraightPointerRenderer,同时将VRTK_StraightPointerRenderer赋值给VRTK_Pointer用来渲染射线,同时需要勾选Enable Teleport:

VRTK - 3.传送_第1张图片
Pointer设置.png

渲染射线的方式有两种,一种是直线,就是例子中添加的,一种是比塞尔曲线,需要使用到另外一个渲染射线脚本VRTK_BezierPointerRenderer,需要使用到哪种渲染射线方式,把对应的脚本赋值给VRTK_Pointer中的PointRenderer就行了。

VRTK - 3.传送_第2张图片
BezierPointer.png

射线添加完毕后,然后添加传送的方式,首先在VRTK下建立一个PlayArea空对象,用来做VRTK的游玩区域,并添加上VRTK_BasicTeleport脚本:

VRTK - 3.传送_第3张图片
BasicTeleport.png

完成到这里,就可以进行基本的传送啦。

二、传送的方式

完成后就可以在场景中进行传送啦,传送的方式有三种:
VRTK_BasicTeleport(基本传送),这种传送方式只会更新X/Z的坐标位置不能够进行上下移动。
VRTK_HeightAdjustTeleport(高度调整传送),基本传送的扩展,通过确定PlayArea是否在另外一个游戏对象上来改变Y的坐标。

VRTK_DashTeleport(冲撞传送),和VRTK_HeightAdjustTeleport类似,都可以进行高度的调整,却别是VRTK_HeightAdjustTeleport是瞬移到目的地,VRTK_DashTeleport是快速移动到目的地(有一个渐变的过程);

三、限制传送

在VR场景内,使用传送来移动,当然有些地方是不能够移动的,VRTK也提供了进行几种限制传送的方式,如下:

限制传送区域:

通过VRTK_PolicyList来限制传送区域,限制的方式有以下几种:

VRTK - 3.传送_第4张图片
Operation.png
VRTK - 3.传送_第5张图片
Check Type.png

以tag为例,如果PolicyList的操作方式是Ignore的话,场景中物体的tag匹配上PolicyList中的tag “Test”时,则不能够传送到该物体上。


VRTK - 3.传送_第6张图片
示例.png
限制手柄传送

当手柄碰撞到物体时,禁止传送:
VRTK_TeleportDisableOnControllerObscured,在PlayArea上加上这个脚本,添加时会自动添加VRTK_HeadsetControllerAware脚本,这个是用来跟踪手柄是否碰撞到物体


VRTK - 3.传送_第7张图片
VRTK_TeleportDisableOnControllerObscured.png
限制身体传送

当身体陷入场景内物体时,不能够进行传送:
在PlayArea上添加VRTK_TeleportDisableOnHeadsetCollision和VRTK_HeadsetCollision,进行限制:


VRTK - 3.传送_第8张图片
VRTK_TeleportDisableOnHeadsetCollision.png

你可能感兴趣的:(VRTK - 3.传送)