虛幻引擎5-Unreal Engine筆記之`GameMode`、`關卡(Level)` 和 `關卡藍圖(Level Blueprint)`的關系

虛幻引擎5-Unreal Engine筆記之GameMode關卡(Level)關卡藍圖(Level Blueprint)的關系

在這里插入圖片描述

code review!

參考筆記:
1.虛幻引擎5-Unreal Engine筆記之GameMode關卡(Level)關卡藍圖(Level Blueprint)的關系
2.虛幻引擎5-Unreal Engine筆記之什么時候新建GameMode,什么時候新建關卡?

文章目錄

  • 虛幻引擎5-Unreal Engine筆記之`GameMode`、`關卡(Level)` 和 `關卡藍圖(Level Blueprint)`的關系
    • 1. GameMode 的作用
      • 主要職責
      • 實現方式
    • 2. 關卡(Level)的角色
      • 主要特點
      • 與 GameMode 的關系
    • 3. 關卡藍圖(Level Blueprint)的作用
      • 主要職責
      • 與 GameMode 的關系
      • 與關卡的關系
    • 4. 三者之間的關系總結
      • 運行時關系
      • 邏輯分工
    • 5. 實際案例
    • 6. 注意事項

1. GameMode 的作用

GameMode 是 UE5 中用于定義游戲規則和邏輯的核心類。它是一個全局的管理者,負責游戲的整體行為和狀態。每個關卡都會關聯一個 GameMode,通常通過項目設置或關卡的 World Settings 指定。

主要職責

  • 游戲規則:定義游戲的核心邏輯,比如勝負條件、計分規則等。
  • 玩家管理:控制玩家角色的生成(通過 PawnPlayerController)、玩家登錄/退出等。
  • 游戲狀態:管理游戲的狀態(開始、進行中、結束等)。
  • 默認類設置:指定默認的 PawnPlayerControllerHUD 等類。
  • 全局邏輯:處理不依賴于特定關卡的全局游戲邏輯。

實現方式

  • GameMode 通常通過 C++ 或藍圖實現。如果是藍圖,可以基于 GameModeBaseGameMode 類創建。
  • 在項目設置中可以設置默認的 GameMode,也可以在特定關卡的 World Settings 中覆蓋默認設置。

2. 關卡(Level)的角色

關卡是 UE5 中游戲世界的具體表現形式,它包含了場景中的所有對象(如地形、靜態網格體、光源、觸發器等)。每個關卡可以看作是一個獨立的游戲場景或區域。

主要特點

  • 物理空間:關卡定義了游戲世界的幾何結構和內容。
  • 獨立性:一個項目可以有多個關卡,游戲可以在關卡之間切換(比如從主菜單到游戲場景)。
  • World Settings:每個關卡有自己的 World Settings,可以指定該關卡使用的 GameMode

與 GameMode 的關系

  • 每個關卡運行時會加載一個 GameMode 實例,GameMode 控制該關卡的游戲邏輯。
  • 關卡本身不包含游戲規則或邏輯,規則由 GameMode 提供,關卡只提供環境和對象。

3. 關卡藍圖(Level Blueprint)的作用

關卡藍圖是特定關卡的專用藍圖,用于處理與該關卡相關的特定邏輯。它可以看作是關卡的"腳本",用來控制關卡中對象的交互和事件。

主要職責

  • 關卡特定邏輯:處理與該關卡相關的特定事件或交互,比如某個門的開關、某個觸發器的邏輯。
  • 對象交互:直接訪問和操作關卡中的具體對象(Actor),比如移動平臺、改變燈光狀態等。
  • 事件觸發:響應關卡中的事件(如玩家進入某個區域)。

與 GameMode 的關系

  • 關卡藍圖和 GameMode 是互補的:
  • GameMode 負責全局游戲規則和邏輯,適用于整個游戲或跨關卡的邏輯。
  • 關卡藍圖負責處理特定關卡的局部邏輯,適用于與關卡中特定對象或事件相關的行為。
  • 關卡藍圖可以與 GameMode 通信,比如通過調用 GameMode 的函數或獲取 GameMode 的實例來訪問全局數據。
  • 例如:GameMode 可能管理玩家的生命值,而關卡藍圖可能在玩家觸發某個陷阱時調用 GameMode 的函數來扣除生命值。

與關卡的關系

  • 每個關卡有一個唯一的關卡藍圖,關卡藍圖直接綁定到該關卡。
  • 關卡藍圖可以直接引用和操作關卡中的 Actor,因為它與關卡是緊密耦合的。

4. 三者之間的關系總結

  • GameMode 是全局的游戲規則管理者,負責游戲的核心邏輯和狀態,通常跨關卡共享(除非特定關卡覆蓋默認 GameMode)。
  • 關卡(Level) 是游戲世界的物理表現,提供了場景和對象,本身不包含邏輯,但可以通過 World Settings 指定一個 GameMode
  • 關卡藍圖(Level Blueprint) 是關卡的專用腳本,負責處理關卡特有的局部邏輯,可以與 GameMode 交互來獲取全局數據或觸發全局事件。

運行時關系

  1. 游戲啟動時,加載一個關卡。
  2. 關卡根據 World Settings 加載對應的 GameMode 實例,GameMode 控制游戲規則。
  3. 關卡中的對象和事件通過關卡藍圖實現局部邏輯,關卡藍圖可以與 GameMode 交互來影響全局狀態。

邏輯分工

  • 如果邏輯是全局的、與游戲規則相關的,放在 GameMode 中(比如計分、游戲結束)。
  • 如果邏輯是特定關卡相關的,放在關卡藍圖中(比如某個關卡中的機關觸發)。
  • 如果邏輯是特定 Actor 相關的,放在該 Actor 的藍圖中(比如一個角色的移動邏輯)。

5. 實際案例

假設正在開發一個射擊游戲:

  • GameMode:定義游戲規則,比如玩家有 3 條命,擊殺敵人得 10 分,達到 100 分獲勝。管理玩家的重生、游戲結束等邏輯。
  • 關卡(Level):包含游戲場景,比如一個競技場,里面有墻壁、武器刷新點、敵人生成點等。
  • 關卡藍圖:處理關卡中的特定邏輯,比如玩家進入某個區域時觸發陷阱,扣除玩家生命(通過調用 GameMode 的函數)。

6. 注意事項

  • 避免邏輯重疊:盡量避免在關卡藍圖中寫全局邏輯,保持 GameMode 和關卡藍圖的職責清晰。
  • GameMode 覆蓋:可以在關卡的 World Settings 中為特定關卡指定不同的 GameMode,以適應不同關卡的需求。
  • 通信方式:關卡藍圖可以通過 Get Game Mode 節點獲取 GameMode 實例,調用其函數或訪問其變量。

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

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

相關文章

Java+Selenium+快代理實現高效爬蟲

目錄 一、前言二、Selenium簡介三、環境準備四、代碼實現4.1 創建WebDriver工廠類4.2 創建爬蟲主類4.3 配置代理的注意事項 六、總結與展望 一、前言 在Web爬蟲技術中,Selenium作為一款強大的瀏覽器自動化工具,能夠模擬真實用戶操作,有效應對…

SpringBoot配置文件的合并

需求:想分類將mysql數據庫的配置放在一個文件,redis的配置放在另外一個文件 就不去引入mysql和redis了,看能否得到值就行了 測試結果 model的包放錯了 應該移動到demo里 能否用yml或者yaml呢 這里注意yml的寫法 測試結果也是可以的 注意如果主配置文件是yml或者yaml的話

深入理解 BFC:網頁布局的關鍵機制

在前端開發的世界里,網頁布局是一項至關重要的任務。而在眾多布局相關的概念中,BFC(Block Formatting Context,塊級格式化上下文)扮演著極為關鍵的角色。今天,就讓我們深入剖析 BFC 的方方面面。 一、BFC …

04-Web后端基礎(基礎知識)

而像HTML、CSS、JS 以及圖片、音頻、視頻等這些資源,我們都稱為靜態資源。 所謂靜態資源,就是指在服務器上存儲的不會改變的數據,通常不會根據用戶的請求而變化。 那與靜態資源對應的還有一類資源,就是動態資源。那所謂動態資源&…

Vue3 Element Plus el-table-column Sortable 排序失效

問題描述&#xff1a; vue3中 element plus 中 el-table 的 el-table-column使用了插槽后&#xff0c;為什么sortable不起效果&#xff0c;不能點擊排序 <el-table-columnlabel"記賬日期"width"110"fixed"left"header-align"left"…

Unity中SRP Batcher使用整理

SRP Batcher 是一種繪制調用優化,可顯著提高使用 SRP 的應用程序的性能,SRP Batcher 減少了Unity為使用相同著色器變體的材質準備和調度繪制調用所需的CPU 時間。 工作原理: 傳統優化方法通過減少繪制調用次數提升性能,而SRP Batcher的核心理念在于降低繪制調用間的渲染狀…

服務器的基礎知識

什么是服務器 配置牛、運行穩、價格感人的高級計算機&#xff0c;家用電腦不能比擬的。 服務器的組成&#xff1a;電源、raid卡、網卡、內存、cpu、主板、風扇、硬盤。 服務器的分類 按計算能力分類 超級計算機 小型機AIX x86服務器&#xff08;服務器cpu架構&#xff09; …

服務器網絡配置 netplan一個網口配置兩個ip(雙ip、輔助ip、別名IP別名)

文章目錄 問答 問 # This is the network config written by subiquity network:ethernets:enp125s0f0:dhcp4: noaddresses: [192.168.90.180/24]gateway4: 192.168.90.1nameservers:addresses:- 172.0.0.207- 172.0.0.208enp125s0f1:dhcp4: trueenp125s0f2:dhcp4: trueenp125…

高級SQL技巧:時序數據查詢優化與性能調優實戰

高級SQL技巧&#xff1a;時序數據查詢優化與性能調優實戰 引言 在現代數據驅動型系統中&#xff0c;時序數據&#xff08;時間序列數據&#xff09;正成為企業核心資產之一。然而&#xff0c;隨著數據量激增和復雜業務需求的不斷涌現&#xff0c;傳統的SQL查詢方式已難以滿足…

DDoS攻擊應對指南:提升網站安全性的有效策略

DDoS&#xff08;分布式拒絕服務&#xff09;攻擊成為了企業面臨的主要網絡安全威脅之一。隨著技術的不斷發展&#xff0c;DDoS攻擊手段也在不斷升級&#xff0c;給企業的網絡安全帶來了極大的挑戰。針對這一問題&#xff0c;企業需要采取有效的防御措施&#xff0c;以保障網站…

Appium 的 enableMultiWindows 參數

引言 在移動應用自動化測試中&#xff0c;??混合應用&#xff08;Hybrid App&#xff09;?? 和多窗口場景&#xff08;如分屏、彈窗、多 WebView&#xff09;的處理一直是技術難點。Appium 的 enableMultiWindows 參數為這類場景提供了關鍵支持&#xff0c;但在實際使用中常…

C++中的菱形繼承問題

假設有一個問題&#xff0c;類似于鴨子這樣的動物有很多種&#xff0c;如企鵝和魷魚&#xff0c;它們也可能會有一些共同的特性。例如&#xff0c;我們可以有一個叫做 AquaticBird &#xff08;涉禽&#xff0c;水鳥的一類&#xff09;的類&#xff0c;它又繼承自 Animal 和 Sw…

前端excel表格解析為json,并模仿excel顯示

前端環境&#xff1a;elementUI vue2 <style lang"scss" scoped> 頁面效果 jsondata為mock數據&#xff0c;為方便調試其內容可清空&#xff0c;首行&#xff08;字母坐標&#xff09;隨數據內容自動變化&#xff0c;首列也是一樣&#xff0c;模擬excel …

NAT(網絡地址轉換)邏輯圖解+實驗詳解

原理 NAT&#xff08;Network Address Translation&#xff0c;網絡地址轉換&#xff09; 是一種網絡技術&#xff0c;用于在IP數據包通過路由器或防火墻時&#xff0c;修改其源IP地址或目標IP地址&#xff0c;以實現不同網絡之間的通信。 基礎概念 本來NAT是來解決 IPv4 地…

Qt+線段拖曳示例代碼

Qt線段拖曳示例代碼&#xff0c;功能見下圖。 代碼如下&#xff1a; canvaswidget.h #ifndef CANVASWIDGET_H #define CANVASWIDGET_H#include <QWidget> #include <QPainter> #include <QMouseEvent> #include <QVector>class CanvasWidget : publi…

高等數學-求導

一、求導數的原函數就是求導數的積分 1&#xff09;設函數f(t)在區間[a,b]上連續&#xff0c;則對任意的x∈[a,b],f(t)在[a,x]上連續&#xff0c;從而在[a,x]上可積。令其積分為Φ(x)∫*a^x f(t)dt, x∈[a,b],則Φ(x)為定義在區間[a,b]上的一個函數&#xff0c;通常稱作積分上…

(第94天)OGG 微服務搭建 Oracle 19C CDB 架構同步

前言 Oracle GoldenGate Microservice Architecture (OGGMA) 是在 OGG 12.3 版本推出的全新架構。相比傳統架構,OGGMA 基于 Rest API,通過 WEB 界面即可完成 OGG 的配置和監控,大大簡化了部署和管理流程。 本文將詳細介紹如何在 Oracle 19C CDB 環境中部署 OGG 19.1.0.4 微…

前端vscode學習

1.安裝python 打開Python官網&#xff1a;Welcome to Python.org 一定要點PATH&#xff0c;要不然要自己設 點擊install now,就自動安裝了 鍵盤winR 輸入cmd 點擊確定 輸入python&#xff0c;回車 顯示這樣就是安裝成功了 2.安裝vscode 2.1下載軟件 2.2安裝中文 2.2.1當安…

uniapp vue 開發微信小程序 分包梳理經驗總結

嗨&#xff0c;我是小路。今天主要和大家分享的主題是“uniapp vue 開發微信小程序 分包梳理經驗總結”。 在使用 UniAppvue框架開發微信小程序時&#xff0c;當項目比較大的時候&#xff0c;經常需要分包加載。它有助于控制主包的大小&#xff0c;從而提升小程序的啟…

git合并多次commit提交

首先查看歷史記錄 git log 查看你想要合并的commit是哪些&#xff08;注意&#xff1a;這里是逆序&#xff0c;最上的是最新提交&#xff09; 找到當前想要合并的最后一個記錄&#xff0c;復制該記錄的下一個記錄的 id&#xff08;黃色部分commit id&#xff09;&#xff0c…