VRTK的使用-瞬移
一、前期准备
- 1.建立空物体,空物体下设置两个子物体,按照个人喜好命名,博主一般命名为【VRTK】、LeftController、RightController,本博文之后将全部采用此命名进行说明。
- 2.为【VRTK】添加脚本Steam_SDK Manager
- 3.为LeftController、RightController分别添加VRTK_Controller Events、VRTK_Pointer、VRTK_Straight Pointer Render(或VRTK_BezierPointer Render)脚本
- 4.将VRTK_Straight Pointer Render(或VRTK_BezierPointer Render)挂载在VRTK_Pointer的Pointer Render属性选框中。
- 5.调整Manager参数如下图
二、瞬移效果
1.瞬移区域的前提是必须拥有碰撞体
2.在【VRTK】添加一个新的子物体,可命名PlayArea,添加VRTK_Basic Teleport脚本
VRTK_Basic Teleport具体分析如下:
- Blink Transition Speed:瞬移时闪屏效果的持续时间
- Distance Blink Delay:闪屏的延时
- Target List Policy:响应瞬移的策略设置
- Nav Mesh Limit Distance:使用Nev Mesh控制瞬移区域的设置
3.若实现上楼梯等高度产生变化的瞬移,则只需导入VRTK_Height Adjust Teleport脚本
VRTK_Height Adjust Teleport具体参数大多同上,只多增加一个Layers To Ignore参数,该参数负责哪一个层级的物体不需要参与高度自适应的瞬移。
4.若实现快速瞬移效果,则只需导入VRTK_DASH Teleport脚本
5.设置具体的不可达与可达瞬移区域,详情方法见下文
附加:若使用Beizer曲线渲染进行瞬移,在不规则区域会出现曲线光标和物体表面未保持一致,解决方法只需要将VRTK_BezierPointer Render脚本的Curve Match Target Rotation属性勾选即可
三、瞬移区域机制
设置不可到达区域
1.第一种方式:向PlayArea挂载VRTK_Policy List脚本,并将其指定给VRTK_Basic Teleport的 Target List Policy属性
VRTK_Policy List具体分析如下:
- Operation:忽略或包含
- Check Types:检查某一种属性
- Size:不可到达的特定属性物体的个数
- Element:具体属性的每一个名称
**2.第二种方式:使用Nev Mesh设置区域 - 点击windows->Nevigation打开nevigation窗口
- 附加: 建立自动寻路区域请查看另两位博主的详细博文,链接如下:Unity 之Navigation烘焙、unity2019.2 navigation navmeshagent ai寻路 静态烘焙,动态烘焙 动态障碍物 路径画线 使用教程
- 设置VRTK_Basic Teleport的Nav Mesh Limit Distance数值,即Nev Mesh往里缩进几个单位的区域可以参与瞬移
3.第三种方式:布置瞬移点的瞬移方式
瞬移点的预制体为VRTK/Prefabs/DestinationPoint,瞬移点挂载的脚本VRTK_Destination Point脚本属性详解如下:
- Enable Tleport:该瞬移点是否可用
- Snap To Point:选中后瞬移到这个点时候,VRcamera到达这个点,类似于吸附效果
- Hide Pointer Cursor:光标指向时候,是否隐藏光标
四、瞬移指针的自定义
改变VRTK_Straight Pointer Render(或VRTK_BezierPointer Render)脚本属性即可
- Vaild Collision Color:可用的瞬移颜色
- Incalid Collision Color:不可用的瞬移颜色
- Tracer Visbility:曲线什么时候出现
- Crusor Visbility:光标什么时候出现
- Custom Tracer:曲线样式
- Custom Cursor:光标样式
更多属性解析请查看VRTK相关脚本介绍。