Mise en réseau C# de haut niveau pour Godot basée sur les solutions réseau Unity open source populaires Mirror et Mirage
Démo vidéo d'un exemple de projet : https://youtu.be/Ty55PZWtsJI
La documentation pour la version Unity de Mirage est disponible sur https://miragenet.github.io/Mirage/. La plupart des mêmes concepts s'appliqueront à la version Godot.
git clone [email protected]:James-Frowen/Mirage.Godot.git
src/Mirage.Godot/Scripts
dans votre projet godot.csproj
principal de votre projet, ajoutez une référence à :Mirage.Logging.csproj
Mirage.SocketLayer.csproj
dotnet build Mirage.CodeGen.csproj -c Release
[-o|--output <OUTPUT_DIRECTORY>]
pour rendre le chemin plus facile à trouver< 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
utilise actuellement une référence à Mirage.Godot.csproj
pour rechercher les types Mirage, mais lors de l'exécution, il utilisera les types à l'intérieur du csproj cible.
Commandes pour exécuter les étapes ci-dessus (remplacez path/to/project
par votre projet)
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
puis ajoutez manuellement la cible PostBuild
avec le chemin vers CodeGen/CodeGen.exe
remarque : vous souhaiterez peut-être exclure le dossier src/Mirage.Godot/Scripts/Example1
lors de la construction, sinon il se retrouvera dans la DLL Mirage.Godot
Mirage.Godot utilise Mono.Cecil pour modifier le code source C# après sa compilation, ce qui permet aux fonctionnalités d'être hautes performances et faciles à utiliser.
Pour configurer, ajoutez ce code au csproj par défaut pour le projet 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 >
et modifiez le chemin Path/To/Mirage.CodeGen.exe
jusqu'à l'endroit où vous avez créé le fichier Mirage.CodeGen.exe
.
Notez que les deux cibles sont obligatoires :
TargetPath
fonctionne mieux dans l'éditeur pour garantir que les modifications de génération de code sont appliquées avant l'exécutionPublishDir
est nécessaire car TargetPath
n'est pas le chemin copié lors de l'exportation de la build L'exemple utilise des liens symboliques pour inclure les scripts Mirage.Godot dans le 2ème projet.
Pour cloner ce dépôt avec ces liens symboliques, exécutez en tant qu'administrateur :
git clone -c core.symlinks=true [email protected]:James-Frowen/Mirage.Godot.git
Si vous téléchargez sans liens symboliques (comme à partir d'un fichier zip), vous devrez alors copier manuellement (et non déplacer) les fichiers de src/Mirage.Godot/Scripts
vers src/Mirage.Godot.Example1/Mirage.Godot
lors du développement local de la génération de code, vous souhaiterez peut-être ajouter cette étape au début des cibles PostBuild afin qu'elle reconstruise le projet codegen avant de l'exécuter
< Exec Command = " dotnet build $(ProjectDir)/../Mirage.Core/Mirage.CodeGen/Mirage.CodeGen.csproj -c Release " />