虚拟现实 HTC View瞬移教程

来源:互联网 发布:2017优化最好的游戏 编辑:程序博客网 时间:2024/06/08 05:01

使用瞬间移动的插件,完成瞬移功能就很简单了,,,
官方下载地址:https://github.com/Flafla2/Vive-Teleporter

第一步:配置Vive NavMesh
1

从添加Vive Nav Mesh对象开始,可以在Assets文件夹中的Vive-Teleporter/Prefabs/Navmesh.prefab路径下找到一个预配置的Vive NavMesh。可以将这个对象放在场景层级面板的任何地方和场景中的任何位置。

接下来需要在Unity中烘焙一个导航网格(“Navmesh”)。这个可以在Navigation窗口中完成(Window > Navigation)。
这里有几点需要考虑:

系统自动剔除斜坡导航网格三角形。 这意味着任何没有直接面向上的部分的导航网格都会被传送系统忽略。这个在VR中是合理的,因为玩家不能走上斜坡!

必须在所以可传送表面使用物理碰撞器。 抛物线的点(见下边第二步)使用物理射线来确定玩家指向。因此所有可传送表面必须有碰撞器(包括像墙这种不可传送的表面并且要阻止指示)。
2
(注:要是没有那个绿色的小球,就调整碰撞体的大小试试,这个测试时弄了好久,,,)

烘焙完导航网格之后(使用Navigation窗口底部的“Bake”按钮烘焙),回到之前创建的Vive Nav Mesh 对象。如果决定专用的导航区域(见上方),可以通过Area Mask属性选择那些区域是可传送的。然后点击检视面板中的“Update Navmesh Data”按钮,就会看到导航网格显示在场景视图中。

第二步:配置ParabolicPointer
3
接下来添加Parabolic Pointer 对象。可以在Assets文件夹中 Vive-Teleporter/Prefabs/Pointer.prefab路径下找到一个预配置的指针。可以将它放在场景层级面板的任何地方和场景中的任何位置。
你当然可以修改Parabolic Pointer脚本中的任何设置了,不过只允许设置其中的一个:配置从第一步的ViveNav Mesh对象到指针的“Nav Mesh”。

第三步:配置Vive Teleporter
4
最后需要为SteamVR Camera 添加一个Vive Teleporter (Component > Vive Teleporter > Vive Teleporter)组件。这是用来渲染Vive显示的摄像机。如果是使用了SteamVR 插件中的[CameraRig]预制件则应该将Vive Teleporter 添加给那个预制件中的Camera (eye) 对象。

组件属性配置
Pointer: 将这个设置为第二步创建的Parabolic Pointer 对象。
OriginTransform: 将这个设置为追踪空间的起点。如果使用了SteamVR插件,这个就是[CameraRig] 游戏对象。当玩家传送时这个对象是实际移动的。
HeadTransform: 将这个设置为玩家的头部。这个应该是Origin Transform的子集。如果使用了SteamVR插件,这个是Camera (head) 游戏对象。
Navmesh Animator: 将这个设置为第一步创建的Vive Nav Mesh 对象的动画。
Fade Material: 将这个设置为Vive-Teleporter/Art/Materials/FadeBlack.mat中的材质
Controllers: 将SteamVR控制器对象填到这里。如果使用了SteamVR的 [CameraRig] 预制件,则应该将Controller(left) 和 Controller(right) 两个对象填到这里。

完成后参照结果图:
5

运行图:
6

此时操控手柄就可以实现瞬移了,,,

原创粉丝点击