UE3客戶端服務器GamePlay框架

客戶端(當前玩家)與服務器對應關係圖:數組

 

總體上看,UE3的GamePlay框架使用的是MVC架構服務器

橙色的Actor對象及橙色箭頭相連的成員變量只會被同步給Owner客戶端架構

Controller:控制器,包括PlayerController和AIController框架

InventoryManager:玩家武器管理器函數

Inventory:玩家武器鏈表spa

黃色的Actor對象及黃色箭頭相連的成員變量會被同步給全部的客戶端對象

Actor的WorldInfo變量:指向地圖的Main關卡實例blog

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:隊伍信息

③ 遊戲實例(GameInfo)只運行在服務器,配置着當前玩法模式Pawn、Controller、GRI、PRI、HUD等類型信息

 

客戶端(其餘玩家)與服務器對應關係圖:

相關文章
相關標籤/搜索