主要學習網址
論壇地址為:https://et-framework.cn
Git地址為:GitHub - egametang/ET: Unity3D Client And C# Server Framework
官方QQ群 : 474643097
項目檢出
檢出項目切換到release8.0分支
GitHub地址:GitHub - egametang/ET: Unity3D Client And C# Server Framework
碼云地址:(更新可能不及時,我發文章時,最新的版本是7.2的,最好用GitHub的吧)ET: ET是一個開源的游戲客戶端(基于unity3d)服務端雙端框架,服務端是使用C# .net core開發的分布式游戲服務端,其特點是開發效率高,性能強,雙端共享邏輯代碼,客戶端服務端熱更機制完善,同時支持可靠udp tcp websocket協議,支持服務端3D recast尋路等https://gitee.com/egametang/ET
運行指南
打卡目錄下的ET\Book\1.1運行指南.md?文件
運行步驟
-
IDE安裝
使用Rider2023.2(更新到最新版),需要安裝以下內容:
- 安裝.Net7,不要用.Net8,目前并不支持.Net8
- 不支持VS,新人用VS搞出各種問題請不要來問我,我也沒用過VS,后期搞熟了可以自己改用VS
-
master分支必須使用Unity2021.3.29(初學者請在此版本用熟后再切換其他版本)
-
啟動UnityHub,打開(Open) -> 選中'ET/Unity'文件夾所在目錄后打開工程
-
打開工程后,點擊Unity菜單 -> Edit -> Preferences -> External Tools 在下拉框'External ScriptEditor'中Rider,Generate .csproj files for全部不要勾選(□)
-
點擊Unity菜單 -> Assets -> Open C# Project 啟動IDE
-
在Project視圖中選中'Assets/Resources/GlobalConfig',把AppType選擇成'Demo(狀態同步)'或者'LockStep(幀同步)'
-
打開Unity菜單 -> ET -> BuildTool,CodeMode選擇Client Server,然后點擊ReGenerateProjectFiles
-
打開ET.sln,編譯整個ET.sln,注意要翻墻,否則可能nuget包下載不下來,導致編譯出錯
-
Unity中雙擊'Assets/Scenes'目錄中的Init場景,點擊Play(?)即可運行
-
幀同步默認是一個人匹配,如果需要多人匹配,修改LSConstValue.cs中的MatchCount即可
打包過程
-
點擊HybridCLR -> Installer,點擊安裝,等待安裝完成
-
用Rider或VS,編譯好Unity.AllHotfix
-
點擊HybridCLR -> Generate -> All
-
點擊HybridCLR -> CopyAotDlls,這一步會把需要補充元數據的dll復制到'Assets/Bundles/AotDlls'目錄
-
打開YooAsset菜單 -> 點擊AssetBundle Builder -> 點擊下拉框'Copy Buildin File Option' -> 選擇'Clear And Copy All' -> 點擊'構建'
-
打開Unity菜單 -> ET -> BuildTool 點擊'BuildPackage',Windows下生成的exe在'ET/Release'里面
另:請自行研究YooAsset包管理庫的使用方式(YooAsset官網),若需要升級請自行替換'ET/Unity/Packages/YooAsset'
ENABLE_DLL模式
- 該模式用于邏輯全熱更新,還有熱重載,默認就是使用該模式
- 在Unity菜單 -> ET -> ChangeDefines -> Remove ENABLE_DLL(關閉) 或 Add ENABLE_DLL(開啟)
- 邏輯打成了一個Model.dll和Hotfix.dll,開啟該模式時游戲運行是通過加載dll運行,但這樣Unity Editor將無法引用邏輯代碼。所以如果有Editor代碼需要用到邏輯代碼,可以關閉ENABLE_DLL模式
- 若需要體驗熱重載,需要在Unity菜單 -> Edit -> Preferences -> General窗口的ScriptChangesWhilePlaying 中 選擇 'RecompileAfterFinishedPlaying',運行后修改Hotfix代碼然后用Rider或VS編譯好Unity.AllHotfix工程,再在狀態同步Demo中按'R'鍵
注意事項:
一、常見出錯原因:
- 中文目錄
- Rider或VS沒有更新到最新版本
- Rider或VS沒有安裝相關組件
- 沒安裝.Net7
- 沒編譯服務端所有工程
- Unity版本不兼容
- Win7用戶,沒有特別設置
- 編譯過程中如果出現依賴問題,也有可能是'Unity菜單 -> Edit -> Preferences -> External Tools -> Generate .csproj files for': 當中勾選了:'Registry packages' 或 'Build-in packages', 請記得都不要勾選(□)
- 如果打包報錯缺少"StreamingAsset",自己在 'ET/Unity/Assets' 下新建一個 StreamingAsset 文件夾即可