Hochwertiges C#-Netzwerk für Godot basierend auf den beliebten Open-Source-Unity-Netzwerklösungen Mirror und Mirage
Videodemo eines Beispielprojekts: https://youtu.be/Ty55PZWtsJI
Die Dokumentation für die Unity-Version von Mirage finden Sie unter https://miragenet.github.io/Mirage/. Die meisten der gleichen Konzepte gelten für die Godot-Version.
git clone [email protected]:James-Frowen/Mirage.Godot.git
src/Mirage.Godot/Scripts
in Ihr Godot-Projekt.csproj
Ihres Projekts einen Verweis auf Folgendes hinzu:Mirage.Logging.csproj
Mirage.SocketLayer.csproj
dotnet build Mirage.CodeGen.csproj -c Release
[-o|--output <OUTPUT_DIRECTORY>]
um das Auffinden des Pfads zu erleichtern< 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
verwendet derzeit einen Verweis auf Mirage.Godot.csproj
, um Mirage-Typen zu finden. Bei der Ausführung werden jedoch die Typen im Ziel-csproj verwendet.
Befehle zum Ausführen der oben genannten Schritte (ersetzen Sie path/to/project
durch Ihr Projekt)
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
und fügen Sie dann PostBuild
Ziel manuell mit dem Pfad zu CodeGen/CodeGen.exe
hinzu
Hinweis: Möglicherweise möchten Sie den Ordner src/Mirage.Godot/Scripts/Example1
beim Erstellen ausschließen, da er sonst in der Mirage.Godot-DLL landet
Mirage.Godot verwendet Mono.Cecil, um den C#-Quellcode nach der Kompilierung zu ändern. Dies ermöglicht Funktionen mit hoher Leistung und einfacher Verwendung.
Zum Einrichten fügen Sie diesen Code zum Standard-CSPROJ für das Godot-Projekt hinzu
< 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 >
und ändern Sie den Pfad Path/To/Mirage.CodeGen.exe
zu dem Ort, an dem Sie die Datei Mirage.CodeGen.exe
erstellt haben.
Beachten Sie, dass beide Ziele erforderlich sind:
TargetPath
funktioniert am besten im Editor, um sicherzustellen, dass Code-Gen-Änderungen vor der Ausführung übernommen werdenPublishDir
ist erforderlich, da TargetPath
nicht der Pfad ist, der beim Exportieren des Builds kopiert wurde Das Beispiel verwendet Symlinks, um die Mirage.Godot-Skripte in das 2. Projekt einzubinden.
Um dieses Repo mit diesen Symlinks zu klonen, führen Sie es als Administrator aus:
git clone -c core.symlinks=true [email protected]:James-Frowen/Mirage.Godot.git
Wenn Sie ohne Symlinks herunterladen (z. B. aus einer ZIP-Datei), müssen Sie die Dateien manuell von src/Mirage.Godot/Scripts
nach src/Mirage.Godot.Example1/Mirage.Godot
kopieren (nicht verschieben).
Wenn Sie die Codegenerierung lokal entwickeln, möchten Sie diesen Schritt möglicherweise am Anfang der PostBuild-Ziele hinzufügen, damit das Codegenerierungsprojekt vor der Ausführung neu erstellt wird
< Exec Command = " dotnet build $(ProjectDir)/../Mirage.Core/Mirage.CodeGen/Mirage.CodeGen.csproj -c Release " />