UE5 Set actor Location和 Set World Location 和 Set Relative Location 的区别

在 Unreal Engine 的蓝图里,SetRelativeLocationSetWorldLocationSetActorLocation 三个节点虽然都能改变物体位置,但作用对象和坐标空间(Coordinate Space)不同:


1. SetActorLocation

  • 作用对象:整个 Actor(本质上是移动它的根组件 RootComponent)

  • 坐标空间世界空间(World Space)

  • 典型用途:当你想直接把一个 Actor (比如一个敌人、道具、摄像机等)瞬间或平滑地移动到世界中的某个绝对坐标时,用这个节点。

  • 参数要点

    • New Location (Vector):目标世界坐标

    • Sweep? (Boolean):是否执行碰撞检测(扫掠移动,防止穿透墙体)

    • Teleport? (Boolean):是否忽略物理(true:直接传送,不触发物理碰撞响应)


2. SetWorldLocation

  • 作用对象 :一个 Scene Component(场景组件),包括 Mesh、Collision、Camera、Particle 等

  • 坐标空间世界空间(World Space)

  • 典型用途:当你只想移动某个组件(比如把武器的 Mesh、子弹发射点,或某个粒子特效)到世界坐标,而不动 Actor 其它组件时,用它。

  • 注意:如果该组件被 Attach(附着)到父组件,上层父组件的世界变换依然会影响它。


3. SetRelativeLocation

  • 作用对象 :同样是 Scene Component

  • 坐标空间相对空间(Local Space / Parent Space)

  • 典型用途:当你想在组件的父对象(Actor Root 或其它父组件)本地坐标系下做偏移时用它。

    • :把摄像机沿着角色的本地 Z 轴往后拉 50 单位,或把武器挂点在角色手部骨骼本地坐标系中上移 10 单位。
  • 效果:组件位置会以父节点(Actor Root 或 Attach 父组件)的变换为基准来计算。


小结对比

节点 作用对象 坐标空间 何时用?
SetActorLocation Actor(根组件) 世界空间 整体移动 Actor 到世界指定坐标
SetWorldLocation 组件(Scene Component) 世界空间 单独移动某个组件到世界指定坐标,不影响父级附着
SetRelativeLocation 组件(Scene Component) 相对/本地空间 在父组件坐标系下做局部偏移

Tip

  • 如果你对一个 Actor 下的某个组件做相对位置调整,一定要用 SetRelativeLocation,否则直接用 SetWorldLocation 可能会被父组件的旋转、缩放影响,看起来"不听话"。

  • SetActorLocation 内部其实也是调用根组件的 SetWorldLocation,但它额外处理了碰撞、导航、Actor 相关的事件(比如触发 OnActorBeginOverlap)。

  • 三个节点都带 Sweep/Teleport 参数,要注意选择是否要碰撞检测或物理行为。

相关推荐
每天回答3个问题2 天前
UE5C++编译遇到MSB3073
开发语言·c++·ue5
平行云4 天前
赋能数字孪生:Paraverse平行云实时云渲染平台LarkXR,提供强大的API与SDK用于二次开发和深度集成
3d·unity·ue5·webgl·实时云渲染·云xr
m0_552200827 天前
《UE5_C++多人TPS完整教程》学习笔记48 ——《P49 瞄准偏移(Aim Offset)》
c++·游戏·ue5
m0_552200828 天前
《UE5_C++多人TPS完整教程》学习笔记49 ——《P50 应用瞄准偏移(Applying Aim Offset)》
c++·游戏·ue5
m0_552200828 天前
《UE5_C++多人TPS完整教程》学习笔记50 ——《P51 多人游戏中的俯仰角(Pitch in Multiplayer)》
c++·游戏·ue5
CandyU28 天前
UE5 基础应用 —— 09 - 展示类小项目
ue5
vonlycn8 天前
UE5 性能优化(1) 模型合并,材质合并
ue5·材质
ue星空8 天前
月2期学习笔记
学习·游戏·ue5
曼巴UE59 天前
UE5 制作游戏框架的部分经验积累(持续更新)
游戏·ue5
CandyU210 天前
UE5 基础应用 —— 10 - 控制台命令
ue5