【UE5】五大基類及其使用

UObject

UObject表示對象,準確來說,虛幻引擎中的對象基礎類為UObject
UObject提供了以下功能:

  1. 垃圾收集(Garbage collection)
  2. 引用自動更新(Reference updating)
  3. 反射(Reflection)
  4. 序列化(Serialization)
  5. 自動檢測默認變量的更改(Automatic updating of default property changes)
  6. 自動變量初始化(Automatic property initialization)
  7. 和虛幻引擎編輯器的自動交互(Automatic editor integration)
  8. 運行時類型識別(Type information available at runtime)
  9. 網絡復制(Network replication)

使用UObject是因為要使用上述某些功能,而不是因為他是UE對象基類

Actor

· 所有可以放入關卡的對象都是Actor,比如攝像機、靜態網格體、玩家起始位置。Actor支持三維變換,例如平移、旋轉、縮放,你可以通過游戲邏輯代碼(C++或藍圖)創建(生成)或銷毀Actor
· 在C++中,AActor是所有Actor的基類
· Actor繼承自UObject
· Actor能夠被掛載組件
· Actor擁有Tick的能力
· 組件是Component,并不是Actor
· Actor并不自帶Transform,Actor的Transform來自于其RootComponent
· 絕大部分在場景中的對象,無論是有形的還是無形的,都是Actor

Component

· 組合大于繼承
· 為了弱化Actor的繼承鏈,提出了Component的概念
· Component繼承自UObject,比Actor輕量
· 主要存在兩種Component,SceneComponent和ActorComponent,SceneComponent在場景中存在Transform,也能有坐標系父子關系
· UE更傾向于編寫功能單一的Component,而不是一個整合了其他Component的大管家Component
· Component應該作為Actor較獨立可復用性功能的載體,Actor本身也擁有數據存儲能和邏輯實現能力,主要用于實現游戲業務邏輯
· Actor在世界中的位置屬性、父子關系,全權由Component接管
在這里插入圖片描述

Pawn

· 繼承自Actor
· Pawn相比于Actor,可以被Controller控制
· 相比于Actor的邏輯,Pawn通過Controller解耦了游戲的業務邏輯,將Pawn自身實現的邏輯和上層控制邏輯分開
· 解耦:耦合是指兩個或兩個以上的體系或兩種運動形式間通過相互作用而彼此影響以至聯合起來的現象,解耦就是用某種方法將兩種體系分離開來處理
問題

Controller

· Controller繼承自Actor(為了使用Actor的掛載組件、Tick等功能)
· AController
· Controller里只是保存了一個Pawn指針(一對一)
· Controller在邏輯上應該實現玩家邏輯
· Controller的Transform作用
虛幻引擎核心設計:MVC
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165396.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165396.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165396.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

火電廠電氣部分設計

摘要 本文首先根據任務書上所給系統與線路及所有負荷的參數,分析負荷發展趨勢。從負荷增長方面闡明了建站的必要性,然后通過對擬建變電站的概括以及出線方向來考慮,并通過對負荷資料的分析,安全,經濟及可靠性方面考慮…

計算機基礎知識57

前后端數據傳輸的編碼格式(contentType) # 我們只研究post請求方式的編碼格式: get請求方式沒有編碼格式-- index?useranme&password get請求方式沒有請求體,參數直接在url地址的后面拼接著 # 有哪些方式可以提交post請求:f…

構建個性化預約服務:預約上門服務系統源碼解讀與實戰

隨著社會的發展,預約上門服務系統在滿足用戶需求、提升服務效率方面發揮著越來越重要的作用。在本文中,我們將深入研究預約上門服務系統的源碼,通過實際的技術代碼示例,揭示系統內部的關鍵機制,以及如何在實際項目中應…

qml動畫過渡Transition

文章目錄 基本概念使用 `Transition`示例動畫過渡高級用法示例:復雜動畫過渡解釋進階用法在 QML 中,Transition 元素用于定義狀態之間過渡時的動畫。這是 QML 強大的狀態機制的一部分,允許開發者創建平滑且吸引人的用戶界面交互。使用 Transition,您可以定義當元素從一個狀…

深入了解接口測試:方法、工具和關鍵考慮因素(一)

接口測試是軟件測試中的一項重要工作,它涉及到系統與系統之間的交互點。接口可以是外部接口,也可以是內部接口,包括上層服務與下層服務接口以及同級接口。在接口測試中,我們需要確保接口能夠按照預期的方式進行通信和交互&#xf…

【攻防世界-misc】can_has_stdio?

1.用記事本打開文件是這樣子的, 這是一段BF(Brainfuck)編程語言代碼,屬于一種極簡化的編程語言,用于演示計算機程序設計概念。這段代碼包含了一些操作符,如">"表示指針向右移動,&q…

【C++破局】泛型編程|函數模板|類模板

?作者主頁 📚lovewold少個r博客主頁 ??本文重點:c模板初階知識點講解 👉【C-C入門系列專欄】:博客文章專欄傳送門 😄每日一言:花有重開日,人無再少年 目錄 前言 泛型編程 函數模板 函數模…

用Java實現簡易的圖書管理系統(超詳細)

目錄 1.設計背景 2.設計思路 3.模塊展示及代碼演示 3.1 Book類的實現 3.2 BookList類的實現(書架) 3.3 異常類的實現(OperationException) 3.4 用戶類的實現 3.5 操作接口的實現(定義規范) 3.6 操作類的具體實現 3.6.1 增加操作 3.6.2 查找操作 3.6.3 刪除操作 3.6…

標簽打印機打印標簽時出現,數據處理過程中錯誤 無法設置項目 圖片1的內容無法打印

環境: Win10專業版 NiceLabel Designer 10.1 問題描述: 標簽打印機打印標簽時出現,數據處理過程中錯誤 無法設置項目 圖片1的內容無法打印 解決方案: 1.刪除標簽部分文字打印測試 還是一樣(未解決) …

已解決java.lang.IllegalStateException異常的正確解決方法,親測有效!!!

已解決java.lang.IllegalStateException異常的正確解決方法,親測有效!!!文章目錄 報錯問題解決思路解決方法交流 報錯問題 java.lang.IllegalStateException 解決思路 java.lang.IllegalStateException通常表示程序的當前狀態與…

jenkins 參數構建

應用保存 [rootjenkins-node1 .ssh]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved i…

【嵌入式面試】2022年嵌入式經典面試題匯總(C語言)

📜作者:不想脫發的基兄 📺專欄:《嵌入式面試》 📣格言:不管前方的路有多苦,只要走的方向正確,不管多么崎嶇不平,都比站在原地更接近幸福。 前言: 2022年秋招我…

C++之初始化列表詳細剖析

一、初始化列表定義 初始化列表:以一個冒號開始,接著是一個以逗號分隔的數據成員列表,每個"成員變量"后面跟一個放在括號中的初始值或表達式。 class Date { public:Date(int year, int month, int day): _year(year), _month(mont…

OpenCV快速入門:圖像分析——圖像分割和圖像修復

文章目錄 前言一、圖像分割1.1 漫水填充法1.1.1 漫水填充法原理1.1.2 漫水填充法實現步驟1.1.3 代碼實現 1.2 分水嶺法1.2.1 分水嶺法原理1.2.2 分水嶺法實現步驟1.2.3 代碼實現 1.3 GrabCut法1.3.1 GrabCut法原理1.3.2 GrabCut法實現步驟1.3.3 代碼實現 1.4 Mean-Shift法1.4.1…

論文閱讀 (106):Decoupling maxlogit for out-of-distribution detection (2023 CVPR)

文章目錄 1 概述1.1 要點1.2 代碼1.3 引用 2 預備知識3 方法3.1 MaxLogit3.2 改進MaxCosine和MaxNorm3.3 DML 1 概述 1.1 要點 題目:解耦最大logit分布外檢測 (Decoupling maxlogit for out-of-distribution detection) 方法: 提出了一種心機基于log…

多級緩存快速上手

哈嘍~大家好,這篇來看看多級緩存。 🥇個人主頁:個人主頁????? 🥈 系列專欄:【微服務】 🥉與這篇相關的文章: JAVA進程和線程JAVA進程和線程-CSDN博客Http…

不做機器視覺工程師,轉行,轉崗的建議與想法

正所謂外行看熱鬧,內行看門道。提前咨詢前輩們,多問問,多看看。要做就做,一定要提前做好防范。 無論你是要轉行或者是轉崗,看你有沒有本錢和試錯成本 有些人,家庭好,可以一直去試錯和從頭再來。…

無線WiFi安全滲透與攻防(國外篇):使用 Aircrack-ng 破解 WEP 密碼

使用 Aircrack-ng 破解 WEP 密碼 使用 Aircrack-ng 破解 WEP 密碼一. 用 Aircrack-ng 破解 WEP 密碼 - 背景知識網卡與網卡芯片WEP 加密協議WEP 所使用的身份認證協議二. 使用 Aircrack-ng 破解 WEP 密碼 - 破解原理破解機理三. 使用 Aircrack-ng 破解 WEP 密碼 - aircrack-ng …

學習.NET驗證模塊FluentValidation的基本用法(續1:其它常見用法)

FluentValidation模塊支持鏈式驗證方法調用,也就是說,除了 RuleFor(r > r.UserName).NotEmpty()調用方式之外,還可以將對單個屬性的多種驗證函數以鏈式調用方式串接起來,比如UserName屬性不能為空,長度在5~10之間&a…

__attribute__((constructor))用法解析

__attribute__((constructor))是GCC和兼容的編譯器中的一個特性,用于指示編譯器將一個函數標記為在程序啟動時自動執行的初始化函數。 同樣的還有__attribute__((destructor))在main()函數后調用。 當你在一個函數聲明或定義前加上__attribute__((constructor))屬…