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
英文地址,請注明出處:http://en.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…