闲居少邻并, 草径入荒园。
苔痕上阶绿, 草色入帘青。
无丝竹之乱耳,无案牍之劳形。
暂去还来此, 幽期不负言。
--《陋室铭》《题李凝幽居》
1、新建一个项目,导入SteamVR和VRTK,导入场景包VRTK_Teleport_Environment(可以在网上搜索,随便一些场景包都可以,或者在资源商店中找),配置SteamVR 和VRTK,添加手柄,并给手柄添加直线指针
①导入的场景
②渲染出手柄
③按下手柄的touch pad键发射直线型指针
2、添加瞬移区域。在VRTK_SDKManager中创建一个空物体,并重命名为PlayArea,添加组件VRTK_Basic Teleport并设置相关属性。此时便可以进行瞬移了,可以在场景中到处转转
Blink To Color:瞬移时闪屏的颜色
Blink Transition Speed:瞬移时闪屏的速度
Distance Blink Delay:按下Touch Pad键后延迟多久开始瞬移
Target List Policy:瞬移的策略设置
Nav Mesh Limit Distance:控制瞬移区域的数值
①赏赏树
②看看石桥与房屋
③跳到箱子上面,但此时发现并没有站在箱子上面,而是站在了地面上身体穿过了箱子
3、添加自适应高度的瞬移。移除PlayerArear上的组件VRTK_Basic Teleport并添加组件VRTK_Height Adjust Teleport,该组件与Basic Teleport相比多了一个Layer To Ignore(所要忽略的层级)
①瞬移都是基于碰撞的,给所需要设置的物体添加collider
选中场景中的房屋,添加collider
选中石梯,添加collider
选中箱子,添加collider
③登高望远,这里风景独好
站在屋顶
站在石梯
站在箱子
4、添加贝塞尔曲线的指针,并看其在不规则表面上的显示
①进行设置
移除左右手柄的VRTK_Straight Pointer Rendere,并添加VRTK_Bezier Pointer Renderer,并分别将左右手柄的VRTK_Bezier Pointer Renderer股给Pointer Activation Settings的Pointer Renderer。给场景中所需要的瞬移区域添加collider。
5、运行后,指针的末端穿过了物体的表面
6、修改指针末端的光标,使其与物体表面的法线方向保持一致,从而附着在物体表面
勾选左手柄的Cursor Match Target Rotation
勾选有手柄的Cursor Match Target Rotation
运行后即使在有坡度的表面,光标也浮在了斜坡的表面
7、添加瞬移组件VRTK_Dash Teleport。上面的瞬移是从一个点换到另一个点,只是添加了一个闪屏;VRTK_Dash Teleport瞬移非常快,瞬移中间的过程可见,并且自带了自适应高度的效果。
选中PlayeArea,并移除原来的VRTK_Basic Teleport,添加组件VRTK_DASH Teleport,运行后可以体会其效果,只可意会不可言传
注:1、参考资料:http://edu.manew.com/course/344/learn#lesson/5691
http://blog.csdn.net/nicolelili1/article/details/74857374
2、无论是VRTK还是SteamVR,瞬移都是基于碰撞的,所以瞬移区域都必须附着一些boxcollider或者messcollider等碰撞体