【HTC-VIVE】09-Teleport:手柄发射瞬移激光检测线,处理角色瞬移

Teleport脚本组件:

该脚本是一个很重要的脚本,涉及到使用手柄的圆盘进行位置移动,通过该脚本来控制TeleportPoint与TeleportArea 的相关状态。同时能播放相应的特效,音频,调整可以瞬移的最大距离等,下面会详细分析该组件。

【HTC-VIVE】09-Teleport:手柄发射瞬移激光检测线,处理角色瞬移_第1张图片
Teleporting.png

可设置的属性:
  • 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 脚本组件:

【HTC-VIVE】09-Teleport:手柄发射瞬移激光检测线,处理角色瞬移_第2张图片
TeleportArc.png
可设置属性:
  • SegmentCount : 激光线有多少段
  • Thickness : 激光线的厚度
  • Arc Duration : 线段的持续时间
  • Segment Break : 线端每部部分之间的间隔
  • Arc Speed: 线段移动速度
  • Material : 激光线的材质

你可能感兴趣的:(【HTC-VIVE】09-Teleport:手柄发射瞬移激光检测线,处理角色瞬移)