與伺服器連結方式:KCP,TCP,WebSocket
注意:
ET架構5.0及以下它的設計初衷是每個程序隻運作一個場景,也就是說對于MMO來說,可能存在上百個Map伺服器。
這對于MMO來說是不能接受的,未來我們需要自己實作同一個程序内多個Map的功能。
配置導出 | Excel轉換為json |
web資源伺服器 | |
Proto消息生成 | |
連結伺服器配置 | |
一鍵打包 | |
AB包名稱設定 | 需要修改Assets/Editor/BuildEditor/BuildEditor.cs下的SetPackingTagAndAssetBundle 添加static并在函數上添加MenuItem特性 |
AstarPath | A*尋路 |
recast | recast尋路 |
ilruntime熱更新 | 具體資料看https://github.com/Ourpalm/ILRuntime |
元件資訊顯示 | 友善在inspector視窗觀察變量的變化 |
ReferenceCollector | 用于對象綁定,代碼中通過key獲得對應對象 |
MongoDB | 用于對象序列化和反序列化 |
Protobuf | 用戶端與伺服器的消息序列化 |
ETVoid、ETTask | 協程支援 async和await |
EventSystem | 事件系統,通過它發送事件,同時承擔了所有元件的系統處理,如AwakeSystem,StartSystem等 |
Log | 日志系統 |
ConfigComponent | 配置元件,通過讀取config.unity3d包裡面的配置加載 配置同時用于用戶端和伺服器 |
TimerComponent | 時間等待元件 |
NetOuterComponent | 外網元件,用于建立Session,NetworkComponent連結伺服器 |
ResourcesComponent | 對AB包的加載和釋放,以及包内資源的擷取 AssetsBundleLoaderAsync AB包異步加載 AssetsLoaderAsync 包内資源讀取 |
UIComponent | UGUI元件 |
MessageDispatcherComponent | 消息分發元件 |
UnityWebRequestAsync | 簡陋的http請求 |
NumericWatcherComponent | 分發數值監聽 |
CoroutineLock | 協程鎖,對協程鎖定,例如玩家多次點選了登入按鈕 不應該進行多次登入請求,應鎖定該事件等待處理完成 |
ConfigComponent CoroutineLockComponent PlayerComponent | 儲存玩家資訊 |
ActorMessageSenderComponent | 發送普通actor消息,與Gate通訊。這裡可以獲得ActorId,而ActorId是找到對應Map的關鍵資訊:IdGenerater.AppId。 |
ActorLocationSenderComponent | 發送location actor消息 |
MailboxDispatcherComponent ActorMessageDispatcherComponent | 這兩個元件是處理actor消息使用的 |
NetInnerComponent | 内網消息元件,與Gate伺服器通訊。注意,Map并不與玩家直接通訊,全都由Gate轉發。 |
NetOuterComponent | 外網消息元件 |
LocationComponent | 儲存了所有玩家的位址(Key是玩家的Id,Value是玩家的InstanceId) 如果玩家在切換Map的時候,要把這裡鎖住。 |
LocationProxyComponent | 通路location server的元件 |
DBComponent DBProxyComponent | 資料庫元件 |
ConsoleComponent | 控制台元件 |
AppManagerComponent | 每隔5秒檢測所有的伺服器是否健在,如果不健在,則重新開機該伺服器 |
RealmGateAddressComponent | 在收到用戶端發來的C2R_LoginHandler消息以後,随機挑選一個Gate(未來可以根據負載挑選),讓其加入。 |
GateSessionKeyComponent | 儲存所有Gate裡的玩家的Session的Key |
ActorLocationSenderComponent | 向Map内的指定玩家發送消息,如果發送失敗,則向Location伺服器索要新的位址 |
AMHandler | 與用戶端通訊不需要傳回的請求 |
AMRpcHandler | 與用戶端通訊需要傳回的請求 |
AMActorHandler | 内網伺服器間不需要傳回的請求 |
AMActorRpcHandler | 内網伺服器間需要傳回的請求 |
AMActorLocationHandler | 外網伺服器間不需要傳回的請求 |
AMActorLocationRpcHandler | 外網伺服器間需要傳回的請求 |
熱更新 | 通過替換DLL熱更 |
支援repl | 在console中輸入repl回車即可進入repl模式 |