Unreal Engine UFloatingPawnMovement

Unreal

  • ⚡ Unreal Engine - UFloatingPawnMovement
    • 🏷 定义
    • 🧩 类继承关系
    • ⚙️ 关键特性
    • 🛠️ 常见配置(Details 面板/代码)
    • 📝 使用方法
      • 1) 在 Pawn 中添加组件(C++)
      • 2) 绑定输入与驱动移动
      • 3) 启用平面约束(可选)
      • 4) 蓝图用法(等价思路)
    • 📚 典型应用场景
    • 🧯 常见坑与对策
    • 🔁 与其他移动组件对比
    • 📦 小结

⚡ 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 面板直接调,快速打磨“手感”。


📝 使用方法

1) 在 Pawn 中添加组件(C++)

// MyFloatingPawn.h
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components")
UFloatingPawnMovement* Movement;// MyFloatingPawn.cpp (构造函数)
Movement = CreateDefaultSubobject<UFloatingPawnMovement>(TEXT("Movement"));
Movement->UpdatedComponent = RootComponent; // 通常设为你的碰撞体/根组件

2) 绑定输入与驱动移动

// Pawn::SetupPlayerInputComponent
InputComponent->BindAxis("MoveForward", this, &AMyFloatingPawn::MoveForward);
InputComponent->BindAxis("MoveRight",   this, &AMyFloatingPawn::MoveRight);
InputComponent->BindAxis("Turn",        this, &AMyFloatingPawn::Turn);// 实现:把输入转成移动/旋转
void AMyFloatingPawn::MoveForward(float Value) {if (Value != 0.f) AddMovementInput(GetActorForwardVector(), Value);
}
void AMyFloatingPawn::MoveRight(float Value) {if (Value != 0.f) AddMovementInput(GetActorRightVector(), Value);
}
void AMyFloatingPawn::Turn(float Value) {AddControllerYawInput(Value); // 让控制器驱动朝向
}

3) 启用平面约束(可选)

Movement->SetPlaneConstraintEnabled(true);
Movement->SetPlaneConstraintNormal(FVector::UpVector); // 约束到 XY 平面
Movement->bSnapToPlaneAtStart = true;

4) 蓝图用法(等价思路)

  • 在 Pawn 蓝图里添加 FloatingPawnMovement 组件。
  • Add Movement Input 节点驱动移动;在 Project Settings → Input 配好 Axis。
  • 可在 Details 面板直接修改 Max Speed / Acceleration / Deceleration / Turning Boost
  • 若只想在平面移动,开启 Constrain to Plane 并设置法线为 Z+

📚 典型应用场景

  • 🎥 自由相机 / 观战模式(Spectator)。
  • 🚀 俯视/双摇杆射击(Top-Down/ Twin-stick)。
  • 🛰 飞行/无人机/太空漂移(无重力直觉式推进)。
  • 🧭 简单 AI 追逐/巡逻(直线或简化路径,无复杂地形逻辑)。

🧯 常见坑与对策

  • 物理模拟冲突:如果 UpdatedComponent(通常是碰撞体)开启了 Simulate Physics,移动组件将无法直接驱动;

    → 关闭物理模拟,或改用物理力/UProjectileMovementComponent 等方案。

  • 没动起来

    • 确认 Movement->UpdatedComponent 指向可移动的根/碰撞组件;
    • 轴映射是否正确(Project Settings → Input);
    • Pawn 是否被玩家/AI Possess(或 Auto Possess Player)。
  • 卡墙角/抖动:适当调碰撞形状、步长、DecelerationTurningBoost,避免高频改变方向导致贴壁震荡。

  • 需要重力/复杂步行UFloatingPawnMovement 不提供地面检测/坡度/跳跃;

    → 使用 UCharacterMovementComponent(带完整角色移动模型)。


🔁 与其他移动组件对比

组件特点适用
UFloatingPawnMovement无重力、加减速、滑移,轻量好调手感飞行/自由镜头/Top-Down
UCharacterMovementComponent完整步行/跳跃/地面逻辑,最复杂玩家角色/NPC
UProjectileMovementComponent给物体初速度/重力/反弹子弹/抛射体
URotatingMovementComponent让组件/Actor 按固定角速度旋转环境机关/旋转装饰

📦 小结

  • UFloatingPawnMovement = 轻量级悬浮移动
  • ✅ 输入驱动 + 加减速 + 碰撞滑移
  • ✅ 可选平面约束,快速做俯视/飞行感
  • ✅ 适合自由相机/飞行器/Top-Down,不适合带重力的地面角色
  • ✅ 与 Pawn/AI/网络基础复制配合良好,易于上手与调参

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94021.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某网盘不好用?有没有类似某网盘的存储软件?阿里云国际站 OSS:云存储的全能助手,你 get 了吗?

在这个数据爆炸的时代&#xff0c;数据存储和管理成为了众多企业和个人面临的一大挑战。想象一下&#xff0c;你是一位视频博主&#xff0c;随着粉丝量的增长&#xff0c;视频素材越来越多&#xff0c;电脑硬盘根本装不下&#xff0c;每次找素材都要花费大量时间。又或者你是一…

安全运维过程文档体系规范

安全运维过程文档体系规范 1. 文档体系总览 本文档体系严格遵循“安全运维生命周期”模型设计&#xff0c;涵盖业务建立、协同、运维管理、识别防御监测、响应和效果评估六个核心阶段。体系旨在通过标准化、规范化的文档管理&#xff0c;确保所有安全运维活动有章可循、有据可查…

【计算机网络】 IPV4和IPV6区别

IPv4 和 IPv6 是两代 互联网协议&#xff08;Internet Protocol&#xff09;&#xff0c;它们的核心作用都是&#xff1a; &#x1f449; 为网络设备分配唯一地址&#xff0c;让它们能在网络中互相通信。1️⃣ 地址长度IPv4&#xff1a;32 位&#xff08;4 字节&#xff09;&am…

哈希:最长连续序列

题目描述&#xff1a;无序的整型数组&#xff0c;求连续最长序列。 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#xff1a;4 &#xff08;因为&#xff1a;最长数字连续序列是 [1, 2, 3, 4]&#xff0c;长度为 4。&#xff09; 说明&#xff1a;连续指的是数字的连续…

python中的生成器

概要python中的生成器是一种特殊的迭代器&#xff0c;如果按照c语言的说法&#xff0c;就是一种特殊的指针&#xff0c;但是python语言的一个语言特性是兼容了函数化编程&#xff0c;类似lambda匿名函数机制。本文重点介绍生成器表达式的使用&#xff0c;是一种很快捷&#xff…

【Coze】Windows 环境下使用 Docker 部署 Coze Studio 的详细指南

一、前言&#xff1a; Coze Studio 是一站式 AI Agent 开发工具。提供各类最新大模型和工具、多种开发模式和框架&#xff0c;从开发到部署&#xff0c;为你提供最便捷的 AI Agent 开发环境。 提供 AI Agent 开发所需的全部核心技术&#xff1a;Prompt、RAG、Plugin、Workflo…

票务系统小程序源码

1. 系统概述 github地址 本系统是一个历经多年迭代和市场检验的综合性智慧票务解决方案。它以小程序和后台管理系统为核心&#xff0c;深度整合了线上OTA渠道、线下多种支付方式以及各类智能硬件&#xff0c;为旅游景区、展馆、活动中心等场景提供稳定、高效、功能完备的一体化…

Python 文件操作与异常处理全解析

目录 一、文件的基本概念 1. 什么是文件 2. 文件操作的核心内容 3. 文件操作的作用 二、文件的基本操作 1. 文件操作三步走 2. 打开文件&#xff1a;open () 函数 2.1 文件路径 2.2 常用 mode 模式 3. 写入文件&#xff1a;write () 函数 4. 关闭文件&#xff1a;cl…

领码方案:通用物联网数据采集低代码集成平台——万物智联时代的黄金钥匙

摘要&#xff1a; 领码方案通过“协议抽象层低代码引擎AI智能中枢”架构&#xff0c;实现物联网设备数据采集、存储、分析的零代码配置化集成。支持200工业协议即插即用&#xff0c;10分钟完成设备上云&#xff0c;数据流转效率提升70%&#xff0c;AI模型调用耗时降低90%。该方…

后台管理系统-10-vue3之用户管理组件配置子路由和静态页面

文章目录 1 配置子路由 1.1 router/index.js(添加路由) 1.2 views/User.vue(用户管理) 1.3 验证路由是否生效 2 User.vue(静态页面) 2.1 搜索框和表格的静态搭建 2.2 用户表格的数据获取渲染 2.2.1 user.js(准备数据) 2.2.2 mock.js(拦截请求的URL) 2.2.3 api.js(axios请求的UR…

AMPAK正基科技系列产品有哪些广泛应用于IOT物联网

關於正基AMPAK 智慧物聯網 無線射頻模組專家 專業品牌 正基科技是一家擁有超過 20 年無線模組研發、設計、生產、行銷與產品技術整合服務經驗的公司。 有專業的高頻模組硬體設計及軟體整合工程師團隊&#xff0c;具備豐富的客戶應用經驗&#xff0c;能因應客戶與市場導向的產品…

【PyTorch】环境配置

文章目录1. 配置cuda环境2. 配置conda环境3. 配置pytorch gpu环境1. 配置cuda环境 在命令行输入以下命令可以查看当前显卡驱动版本和最高支持的cuda版本 nvidia-smi根据cuda版本去官网下载并安装cuda 下载链接&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive…

vue3实现实现手机/PC端录音:recorder-core

通过 recorder-core 这个插件实现录音recorder-core插件使用下方的js文件是安装后封装的一个js文件&#xff0c;在需要使用的地方直接引入这个文件&#xff1a;import record from “./recorderCore.js”;// 文件名称&#xff1a;recorderCore.js// recorder-core插件使用方式…

deepseek 本地部署,如何支持工具调用

这里需要考虑显卡是否和模型匹配&#xff0c;支不支持推理 先把模版拉取到本地&#xff1a;git clone https://github.com/sgl-project/sglang.git 我的位置是 /data/home/sglang 注意模版位于sglang下的examples/chat_template中 根据对应的模版部署模型&#xff0c;比如 …

Excel中运行VB的函数

“插入” -》 “模块”Function FormatCodeFlex(inputStr As String, Optional defaultVal As String "0") As StringOn Error GoTo ErrorHandlerDim parts() As StringDim i As Integer 使用 "-" 分割字符串parts Split(inputStr, "-") 确保至…

《零基础入门AI:深度学习之NLP基础学习》

一、自然语言处理&#xff08;NLP&#xff09;概述 1. 基本概念 ​ 自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;是人工智能与计算语言学交叉的核心领域&#xff0c;致力于实现计算机对人类自然语言的自动理解、分析、生成与交互。其研究目标在于构…

保姆级Debezium抽取SQL Server同步kafka

前言&#xff1a; Debezium SQL Server连接器捕获SQL Server数据库模式中发生的行级更改。 官方2.0文档&#xff1a; Debezium connector for SQL Server :: Debezium Documentation 有关与此连接器兼容的SQL Server版本的信息&#xff0c;请参阅 SQL Server Database: 201…

鸿蒙安卓前端中加载丢帧:ArkWeb分析

序章&#xff1a;卡顿的数字世界 在每秒60帧的视觉交响乐中&#xff0c;每一帧都是精心编排的节拍。当这些节拍开始丢失——就像交响乐中突然静音的提琴部——我们便遭遇了加载丢帧的数字噩梦。这不是简单的性能下降&#xff0c;而是一场渲染管线的全面崩溃&#xff0c;是数字…

Spring Cloud Netflix学习笔记06-Zuul

文章目录概述什么是Zuul?Zuul 能干嘛&#xff1f;Zuul入门案例pom依赖application.yml启动类隐藏真实路径概述 什么是Zuul? Zuul包含了对请求的路由(用来跳转的)和过滤两个最主要功能&#xff1a; 其中路由功能负责将外部请求转发到具体的微服务实例上&#xff0c;是实现外…

c# 和 c++ 怎样结合

c# 和 c 怎样结合在软件开发中&#xff0c;C# 和 C 通常用于不同的场景和目的&#xff0c;但有时需要将它们结合使用以充分利用两种语言的优点。以下是几种常见的方法来实现 C# 和 C 的结合&#xff1a;1. P/Invoke&#xff08;Platform Invocation Services&#xff09;P/Invo…