Rede c# de alto nível para Godot baseada nas populares soluções de rede Unity de código aberto Mirror e Mirage
Vídeo de demonstração do projeto de exemplo: https://youtu.be/Ty55PZWtsJI
A documentação para a versão Unity do Mirage pode ser encontrada em https://miragenet.github.io/Mirage/. A maioria dos mesmos conceitos se aplicará à versão Godot.
git clone [email protected]:James-Frowen/Mirage.Godot.git
src/Mirage.Godot/Scripts
em seu projeto godot.csproj
principal do seu projeto, adicione referência a:Mirage.Logging.csproj
Mirage.SocketLayer.csproj
dotnet build Mirage.CodeGen.csproj -c Release
[-o|--output <OUTPUT_DIRECTORY>]
para tornar o caminho mais fácil de encontrar< 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
atualmente usa referência a Mirage.Godot.csproj
para encontrar tipos de Mirage, mas quando executado usará os tipos dentro do csproj de destino.
Comandos para executar as etapas acima (substitua path/to/project
pelo seu projeto)
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
e, em seguida, adicione o destino PostBuild
manualmente com o caminho para CodeGen/CodeGen.exe
nota: você pode querer excluir a pasta src/Mirage.Godot/Scripts/Example1
ao construir ou ela terminará na dll Mirage.Godot
Mirage.Godot usa Mono.Cecil para modificar o código-fonte c# após sua compilação, o que permite que os recursos tenham alto desempenho e sejam fáceis de usar.
Para configurar, adicione este código ao csproj padrão para o projeto godot
< 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 >
e modifique o caminho Path/To/Mirage.CodeGen.exe
para onde você criou o arquivo Mirage.CodeGen.exe
.
Observe que ambos os alvos são obrigatórios:
TargetPath
funciona melhor no editor para garantir que as alterações na geração do código sejam aplicadas antes da execuçãoPublishDir
é necessário porque TargetPath
não é o caminho copiado ao exportar a compilação O exemplo usa links simbólicos para incluir os scripts Mirage.Godot no segundo projeto.
Para clonar este repositório com esses links simbólicos executados como administrador:
git clone -c core.symlinks=true [email protected]:James-Frowen/Mirage.Godot.git
Se estiver baixando sem links simbólicos (como do arquivo zip), você precisará copiar manualmente (não mover) os arquivos de src/Mirage.Godot/Scripts
para src/Mirage.Godot.Example1/Mirage.Godot
ao desenvolver a geração de código localmente, você pode querer adicionar esta etapa ao início dos destinos do PostBuild para que ele reconstrua o projeto codegen antes de executá-lo
< Exec Command = " dotnet build $(ProjectDir)/../Mirage.Core/Mirage.CodeGen/Mirage.CodeGen.csproj -c Release " />