基於流行的開源 Unity 網路解決方案 Mirror 和 Mirage 的 Godot 高級 C# 網絡
範例專案的影片示範:https://youtu.be/Ty55PZWtsJI
Mirage 統一版本的文件可以在 https://miragenet.github.io/Mirage/ 找到。大多數相同的概念將適用於 Godot 版本。
git clone [email protected]:James-Frowen/Mirage.Godot.git
src/Mirage.Godot/Scripts
複製到您的 godot 專案中.csproj
中加入以下內容的參考:Mirage.Logging.csproj
Mirage.SocketLayer.csproj
dotnet build Mirage.CodeGen.csproj -c Release
[-o|--output <OUTPUT_DIRECTORY>]
使路徑更容易找到< Project Sdk = " Godot.NET.Sdk/4.1.1 " >
...
< Target Name = " PostBuild " AfterTargets = " PostBuildEvent " >
< Exec Command = " path/to/Mirage.CodeGen.exe $(TargetPath) -force " />
< Error Condition = " $(ExitCode) == 1 " />
</ Target >
< Target Name = " PrePublish " BeforeTargets = " Publish " >
< Exec Command = " path/to/Mirage.CodeGen.exe $(PublishDir)$(TargetFileName) $(TargetDir) -force " />
< Error Condition = " $(ExitCode) == 1 " />
</ Target >
</ Project >
Mirage.CodeGen.csproj
目前使用對Mirage.Godot.csproj
的參考來尋找 Mirage 類型,但在執行時間將使用目標 csproj 內的類型。
執行上述步驟的命令(將path/to/project
替換為您的專案)
git clone [email protected]:James-Frowen/Mirage.Godot.git
cd Mirage.Godot
cp src/Mirage.Godot/Scripts " path/to/project/Mirage.Godot "
dotnet build src/Mirage.Core/Mirage.CodeGen/Mirage.CodeGen.csproj -o ./CodeGen
然後手動新增PostBuild
目標以及CodeGen/CodeGen.exe
的路徑
注意:您可能希望在建置時排除src/Mirage.Godot/Scripts/Example1
資料夾,否則它將最終出現在 Mirage.Godot dll 中
Mirage.Godot 使用 Mono.Cecil 在編譯後修改 C# 原始碼,這使得功能具有高效能且易於使用。
若要安裝程序,請將此程式碼新增至 godot 專案的預設 csproj 中
< Target Name = " PostBuild " AfterTargets = " PostBuildEvent " >
< Exec Command = " path/to/Mirage.CodeGen.exe $(TargetPath) -force " />
< Error Condition = " $(ExitCode) == 1 " />
</ Target >
< Target Name = " PrePublish " BeforeTargets = " Publish " >
< Exec Command = " path/to/Mirage.CodeGen.exe $(PublishDir)$(TargetFileName) $(TargetDir) -force " />
< Error Condition = " $(ExitCode) == 1 " />
</ Target >
並將Path/To/Mirage.CodeGen.exe
路徑修改為建置Mirage.CodeGen.exe
檔案的位置。
請注意,兩個目標都是必要的:
TargetPath
在編輯器中效果最佳,可確保在運行之前套用程式碼產生更改PublishDir
,因為TargetPath
不是導出建置時複製的路徑此範例使用符號連結將 Mirage.Godot 腳本包含在第二個項目中。
若要使用這些符號連結複製此儲存庫,請以管理員身分執行:
git clone -c core.symlinks=true [email protected]:James-Frowen/Mirage.Godot.git
如果沒有符號連結下載(例如從 zip 檔案),則您需要手動將檔案從src/Mirage.Godot/Scripts
複製(而不是移動)到src/Mirage.Godot.Example1/Mirage.Godot
在本機開發程式碼產生時,您可能需要將此步驟新增至 PostBuild 目標的開頭,以便在執行之前重建程式碼產生專案
< Exec Command = " dotnet build $(ProjectDir)/../Mirage.Core/Mirage.CodeGen/Mirage.CodeGen.csproj -c Release " />