Teleport
和 Set Actor Location
都可以用于移动一个 Actor 的位置,但它们在底层逻辑和适用场景上有显著区别.
1. Set Actor Location
-
功能:
直接设置 Actor 的位置,不重置物理状态(如速度、动量)。 -
行为特点:
-
保留物理属性:Actor 的当前速度、加速度等物理状态保持不变。
-
触发碰撞检测:移动时会检测碰撞,如果目标位置被阻挡,Actor 可能无法移动到指定位置(取决于
Sweep
参数)。 -
平滑性:可能导致物理引擎的瞬移检测(如高速移动时突然卡顿)。
-
-
参数:
-
New Location
:目标位置(世界坐标)。 -
Sweep
(默认false
):是否检测碰撞(true
时类似“推动”物体移动)。 -
Teleport
(默认false
):是否强制忽略物理插值(UE5 新增参数,需谨慎使用)。
-
-
适用场景:
-
需要保留物理状态的小幅度位移(如平台缓慢移动)。
-
希望触发碰撞事件(如推动其他物体)。
-
2. Teleport
-
功能:
强制将 Actor 瞬移到目标位置,重置物理状态(如速度清零)。 -
行为特点:
-
物理状态重置:Actor 的速度(Velocity)、加速度等属性会被清除。
-
忽略碰撞检测:直接设置位置,不检测路径上的碰撞(但最终位置若被阻挡可能失败)。
-
性能优化:避免物理引擎的连续碰撞检测(适合远距离瞬移)。
-
-
参数:
-
DestLocation
:目标位置(世界坐标)。 -
DestRotation
(可选):目标旋转。
-
-
适用场景:
-
远距离传送(如玩家传送到新地图)。
-
需要强制清除物理状态(如复活角色到检查点)。
-
核心区别总结
特性 | Set Actor Location | Teleport |
---|---|---|
物理状态 | 保留速度、动量 | 重置速度、动量 |
碰撞检测 | 可选是否检测碰撞(Sweep 参数) | 直接设置位置,不检测路径碰撞 |
性能开销 | 较高(若开启 Sweep ) | 较低(无连续碰撞检测) |
适用距离 | 短距离微调 | 远距离瞬移 |
典型场景 | 动态移动平台、物理交互 | 玩家传送、复活点重置、闪现技能 |