Teleport 和 Set Actor location的区别

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 LocationTeleport
物理状态保留速度、动量重置速度、动量
碰撞检测可选是否检测碰撞(Sweep 参数)直接设置位置,不检测路径碰撞
性能开销较高(若开启 Sweep较低(无连续碰撞检测)
适用距离短距离微调远距离瞬移
典型场景动态移动平台、物理交互玩家传送、复活点重置、闪现技能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UE星空

感谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值