新建空场景,删除MainCamera
这次我们不再使用【CameraRig】和【SteamVR】
使用Steam VR 2.0 预制的Player组件,在SteamVR-InteractionSystem-Core-Prefabs中可以找到
将其拖入场景
直接运行,可以看到VR,player自带了VR功能和手柄模型,点击手柄按键可以看见手部模型有很贴合的反馈,这里就是SteamVR2.0特有的Skeleton功能,后面博客我会介绍如何使用skeleton pose设计贴合模型的抓取动作
下面继续介绍Teleport功能
1.基本功能
SteamVR 2.0已经为我们内置了比较完善的传送功能。
在SteamVR-InteractionSystem-Teleport-Prefabs中可以看见
Teloporting和TeleportPoint组件
将Teleporting拖入场景,即可开启传送功能,按圆盘(按键可自定义)即可发出传送贝塞尔曲线,
TeleportPoint为传送点,直接拖入场景即可
创建可传送区域:
新建一个plane(或者任意带有Collider的网格),添加脚本TeleportArea.cs
此处网格所在区域即为可传送区域
2.参数介绍
控制脚本Teleport及TeleportArc
TeleportAction:选择绑定哪个Action来做为传送的按键(绑定的是Action而非按键)
IsShowHint:这个参数是我自定义的,默认脚本中不包含,用来关闭开始时震动按键提示的。后面会介绍如何使用
传送点
Locked可以锁定与解锁当前传送点
Marker Active 勾选的话,按下触发按键,可传送区域才会显示,抬起按键隐藏。若取消勾选,则一直显示
TeleportType:选择传动到位置还是跳转场景。
Switch To Scene:填写场景名
Title:为上方显示的文字内容
可传送平面
功能同上
3.关闭开始时的按键提示
默认脚本的设置,每次开始时,手柄收回震动并配有按键提示,这里我们想自定义控制,需要修改Teleport脚本
首先定义一个变量用来控制
然后在Start中找到如下代码
Invoke("ShowTeleportHint", 5.0f);
使用,变量控制它即可