UE3客户端服务器GamePlay框架
客戶端(當前玩家)與服務器對應關系圖:
整體上看,UE3的GamePlay框架使用的是MVC架構
① 橙色的Actor對象及橙色箭頭相連的成員變量只會被同步給Owner客戶端
Controller:控制器,包括PlayerController和AIController
InventoryManager:玩家武器管理器
Inventory:玩家武器鏈表
② 黃色的Actor對象及黃色箭頭相連的成員變量會被同步給所有的客戶端
Actor的WorldInfo變量:指向地圖的Main關卡實例
a. 關卡ULevel的Actor數組索引為0的Actor對象為當前關卡的WorldInfo實例
b. 游戲世界UWorld中存放著Main關卡和其他關卡(UWorld* GWorld為一個root類型的UObject全局變量)
? ? ULevel*?PersistentLevel為Main關卡
? ?TArray<ULevel*> Levels為Main關卡和其他關卡的集合
c. 在UGameEngine::LoadMap函數中載入新地圖時,會釋放上一個地圖的Main關卡和其他關卡,然后創建新地圖的Main關卡和其他關卡
d. LevelStreaming只能用于釋放和加載其他關卡Level,不能釋放Main關卡
e.?在游戲過程中Spawn出來的Actor,都會放在Main關卡中,并將其WorldInfo變量指向Main關卡實例
f. 其他關卡Level中的Actor的WorldInfo變量也是指向Main關卡實例的
Pawn:玩家和載具
UTWeaponAttachment:武器3P
該對象并不沒有走同步機制,服務器通過同步class<UTWeaponAttachment>類型信息,讓各個客戶端獨占創建UTWeaponAttachment
GameReplicationInfo(GRI):用于保存游戲實例相關數據
a. 在GameInfo的PreBeginPlay函數中被Spawn出來,并將其設置給WorldInfo.GRI
PlayerReplicationInfo(PRI):用于保存各個玩家實例相關數據
TeamInfo:隊伍信息
③ 粉色的Actor對象只運行在服務器
游戲實例(GameInfo)配置著當前玩法模式Pawn、Controller、GRI、PRI、HUD等類型信息
AI控制器(AIController、UTBot)用于控制AI的行為
④ 綠色的為class類型
⑤ 灰色的為當前端自己創建出來的對象
⑥ 箭頭說明
(1)藍色三角形箭頭為直接派生關系,紫色三角形箭頭為間接派生關系(即省略了中間的繼承對象)
(2)普通箭頭為聚合關系(即為某個其成員變量)
?
擴展閱讀
udn:游戲類型技術指南(Gametype Technical Guide)
udn:入門指南: 游戲性元素(Getting Started: Gameplay Elements)
udn:基礎游戲快速入門(Basic Game Quick Start)
udn:角色技術指南(Characters Technical Guide)
udn:相機技術指南(Camera Technical Guide)
udn:載具系統技術指南(Vehicle System Technical Guide)
udn:武器系統技術指南(Weapon System Technical Guide)
?
客戶端(其他玩家)與服務器對應關系圖:
?
本地玩家的PlayerController的詳細架構圖:
?
?
轉載于:https://www.cnblogs.com/kekec/p/9180879.html
總結
以上是生活随笔為你收集整理的UE3客户端服务器GamePlay框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米8 QFIL 刷机
- 下一篇: 全球光伏产业战加剧:美国考虑对进口太阳能