ufloatingpawnmovement

UFloatingPawnMovement

⚡ Unreal Engine - UFloatingPawnMovement


🏷 定义

  • UFloatingPawnMovementPawn 的轻量级移动组件,用于实现“悬浮/漂移式”移动逻辑。
  • 典型特征:不受重力、基于输入 加速/减速,碰撞时沿表面滑移
  • 适合 飞行器/自由镜头/无重力物体 等简单移动需求;不包含角色步行那样的复杂地面/跳跃/梯子等逻辑。

🧩 类继承关系

UObject

└── UActorComponent

  └── UMovementComponent

       └── UNavMovementComponent

            └── UPawnMovementComponent

                 └── UFloatingPawnMovement

                      └── USpectatorPawnMovement  (常见派生:观战/自由摄像)

  • UPawnMovementComponent:Pawn 移动组件基类(收集输入、处理速度/位移)。
  • UNavMovementComponent:提供导航相关接口(便于与 AI/PathFollowing 协作)。
  • USpectatorPawnMovement:基于 UFloatingPawnMovement 的自由相机移动。

⚙️ 关键特性

  • 简单输入驱动:通过 AddInputVector(通常由 AddMovementInput 调用)累计输入,每 Tick 转化为速度与位移。
  • 加速/减速模型
    • 有输入 → 以 Acceleration 朝输入方向加速,最大不超过 MaxSpeed
    • 无输入 → 按 Deceleration 逐步减速至停下。
  • 转向助推(Turning Boost):在低速/急转弯时加一点“顺手感”,更快贴合新方向。
  • 平面约束(可选):支持将移动约束到某平面(如 XY 平面用于俯视游戏)。
  • 碰撞与滑移:移动通过 SafeMoveUpdatedComponent / SlideAlongSurface 实现,遇到障碍会沿表面滑动。
  • 导航/AI 兼容:因继承自 UNavMovementComponent,可配合简单的 AI 移动调用(直线/简化路径)。
  • 网络复制:作为 Pawn 的移动组件,配合 Pawn 的 bReplicates / SetReplicateMovement(true) 可进行基础同步。

🛠️ 常见配置(Details 面板/代码)

  • MaxSpeed:最大速度。
  • Acceleration:有输入时的加速度。
  • Deceleration:无输入时的减速度(制动)。
  • TurningBoost:转向助推(数值越大拐向越“利落”)。
  • 平面约束相关(在 MovementComponent 上):
    • bConstrainToPlane / SetPlaneConstraintEnabled(true)
    • SetPlaneConstraintNormal(FVector::UpVector)(约束到水平面)
    • bSnapToPlaneAtStart(开局吸附到平面)

提示:这些参数可在蓝图/Details 面板直接调,快速打磨“手感”。