在 VRTK插件中有两个瞬移的方法。所有的瞬移都是由手柄发出一条线,线与地面的交点就是瞬移所到的目的地。一个是VRTK_BasicTeleport,另一个是VRTK_HeightAdjustTeleport。下面讲如何实现瞬移和两种瞬移的区别。
瞬移功能实现:
如果要发生瞬移,上面两个脚本中的其中一个要绑定到[CameraRig]上,如图
手柄上需要绑定有VRTK_BezierPointer或者VRTK_SimplePointer中的其中一个,且同时必须绑定VRTK_ControllerEvents。如图:
按住大圆盘键VRTK_BezierPointer会让手柄发出一条直线;VRTK_SimplePointer会让手柄发出一条曲线;如图:
当抬起按键后,[CameraRig](也就是虚拟角色)就会瞬移到刚才线与地面相交的那个点。
两种瞬移的区别:
VRTK_BasicTeleport这个方法没有高度概念,只能在[CameraRig]的基础高度上进行瞬移。也就是无论瞬移目的地的Y轴的值是多少,最后瞬移到的高度都只能是初始化的[CameraRig]的Y轴高度。而VRTK_HeightAdjustTeleport则有高度概念而且还可以设置重力选项。
例如场景中有一个cube在高处,如果想要瞬移到这个cube上用VRTK_BasicTeleport是无法实现的。而需要将VRTK_HeightAdjustTeleport绑定到[CameraRig]才可以实现。
VRTK_HeightAdjustTeleport会和VRTK_BezierPointer一起使用。因为如果用VRTK_SimplePointer,无法与方块的上部的面相交,所以是无法到达方块的顶部的。如图:
VRTK_HeightAdjustTeleport会和VRTK_BezierPointer一起使用,曲线可以到达cube的上方,抬起按键,角色就会瞬移至相交点。如图: