Teleport脚本组件:
该脚本是一个很重要的脚本,涉及到使用手柄的圆盘进行位置移动,通过该脚本来控制TeleportPoint与TeleportArea 的相关状态。同时能播放相应的特效,音频,调整可以瞬移的最大距离等,下面会详细分析该组件。
可设置的属性:
- Teleport Action : 瞬移传送定义的输入事件
- Trace Layer Mask: 该传送激光可以追踪的layer层
- Floor Fixup Trace Layer Mask: 地面修正的可追踪的layer层
- Floor Fixup Maximum Trace Distance: 地面修正的最大的追踪距离
- Area Visible Material : 区域传送的未锁定的材质
- Area Locked Material: 区域传送锁定的材质
- Area Highlighted Material: 区域传送被激光打中的 高亮显示的材质
- Point Visible Material : 点传送的未锁定的材质
- Point Locked Material : 点传送锁定的材质
- Point Highlighted Material:点传送被激光打中的 高亮显示的材质
- Destination Reticle Transform: 有效目的地时的十字线模型及材质
- Invalid Reticle Transform :无效目的地时的十字线模型及材质
- Play Area Preview Corner : 用于生成玩家可游玩的区域的 拐角 模型
- Play Area Preview Side : 用于生成玩家可游玩的区域的 边线 模型
- Pointer Valid Color : 激光线 打到 可以传送位置 的颜色
- Pointe rInvalid Color : 激光线 打到 无效位置 的颜色
- Pointer Locked Color: 激光线 打到 锁定的位置 的颜色
- Show Play Area Marker : 如果是可传送区域,则显示角色可游玩标记
- Teleport Fade Time : **瞬移的转场时间,也设置头显SteamVR_Fade的模糊渐隐时间。
- Mesh Fade Time : 可瞬移的区域模型mesh 的渐隐时间
- Arc Distance : 可瞬移的最大距离
特效:
- On Activate Object Transform : 在激光一打到激活显示的任何物体的一瞬间,产生特效的位置(可以将固定特效作为该点的子物体,就可以实现播放特效)
- On Deactivate Object Transform : 在激光一打到目标点或区域一瞬间,产生特效的位置(可以将固定特效作为该点的子物体,就可以实现播放特效)
- Activate Object Time : 激光打到激活显示的任何物体物体的特效,持续显示的时间
- Deactivate Object Time : 激光一打到目标点或区域的特效。持续显示的时间
音效播放器:
- Pointer Audio Source : 激光线的音频播放器(pointerStartSound与pointerStopSound)
- Looping Audio Source:持续循环播放的播放器(比如一直按下传送时,一直播放的音效pointerLoopSound)
- Head Audio Source : 玩家头部的音效播放器(比如播放传送声音teleportSound)
- Reticle Audio Source : 瞬移激光是否正确选中区域,或者能否传送的播放器( badHighLightSound 与 goodHighLightSound)
音效资源AudioClip:
- Teleport Sound: 瞬移动作声音 Clip
- Pointer Start Sound : 瞬移激光刚发射时的 声音 Clip
- Pointer Loop Sound : 瞬移激光一直按下的 声音 Clip
- Pointer Stop Sound : 瞬移激光停止的 声音 Clip
- Good Highlight Sound : 可以移动的高亮显示的 声音 Clip
- Bad Highlight Sound : 不可移动的高亮显示的 声音 Clip
Debug:
- Debug Floor : 是否开起 地面测试
- Show Offset Reticle : 是否显示 可移动与可游玩的偏移量
- Offset Reticle Transform : 行进偏移模型
- Floor Debug Sphere : 地面检测球
- Floor Debug Line : 地面检测显示线
可访问的属性或方法:
- HideTeleportPointer(): --------------隐藏激光线
- ShowTeleportHint() : ---------------显示传送按钮点击的提示
- CancelTeleportHint() : ----------------取消传送按钮点击的提示
- IsEligibleForTeleport( Hand hand ) : -------判断该手是否能够进行传送,(当拿着东西时,该物体有AllowTeleportWhileAttachedToHand 组件时,就可以传送,如果没有,就不能拿着物体进行传送)
注:
该脚本也是一个单例 ,通过instance 访问公共成员。在同一时刻应该只有一个。
为了显示与调节瞬移的显示线,在该组件下 添加 TeleportArc 脚本组件:
可设置属性:
- SegmentCount : 激光线有多少段
- Thickness : 激光线的厚度
- Arc Duration : 线段的持续时间
- Segment Break : 线端每部部分之间的间隔
- Arc Speed: 线段移动速度
- Material : 激光线的材质