基于流行的开源 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 " />