Jaringan c# tingkat tinggi untuk Godot berdasarkan solusi jaringan Unity open source populer Mirror dan Mirage
Demo Video contoh proyek: https://youtu.be/Ty55PZWtsJI
Dokumentasi untuk Mirage versi unity dapat ditemukan di https://miragenet.github.io/Mirage/. Sebagian besar konsep yang sama akan diterapkan pada versi Godot.
git clone [email protected]:James-Frowen/Mirage.Godot.git
src/Mirage.Godot/Scripts
ke proyek godot Anda.csproj
utama proyek Anda, tambahkan referensi ke:Mirage.Logging.csproj
Mirage.SocketLayer.csproj
dotnet build Mirage.CodeGen.csproj -c Release
[-o|--output <OUTPUT_DIRECTORY>]
untuk membuat jalur lebih mudah ditemukan< 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
saat ini menggunakan referensi ke Mirage.Godot.csproj
untuk menemukan tipe Mirage, tetapi saat dijalankan akan menggunakan tipe di dalam csproj target.
Perintah untuk menjalankan langkah-langkah di atas (ganti path/to/project
dengan proyek Anda)
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
lalu tambahkan target PostBuild
secara manual dengan jalur ke CodeGen/CodeGen.exe
catatan: Anda mungkin ingin mengecualikan folder src/Mirage.Godot/Scripts/Example1
saat membuat atau folder tersebut akan berakhir di Mirage.Godot dll
Mirage.Godot menggunakan Mono.Cecil untuk memodifikasi kode sumber c# setelah dikompilasi, hal ini memungkinkan fitur memiliki kinerja tinggi dan mudah digunakan.
Untuk Menyiapkan, tambahkan kode ini ke csproj default untuk proyek 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 >
dan ubah jalur Path/To/Mirage.CodeGen.exe
ke tempat Anda membuat file Mirage.CodeGen.exe
.
Catatan, kedua target tersebut diperlukan:
TargetPath
berfungsi paling baik di editor untuk memastikan perubahan gen kode diterapkan sebelum dijalankanPublishDir
diperlukan karena TargetPath
bukan jalur yang disalin saat mengekspor build Contohnya menggunakan symlink untuk memasukkan skrip Mirage.Godot di proyek ke-2.
Untuk mengkloning repo ini dengan symlink tersebut, jalankan sebagai administrator:
git clone -c core.symlinks=true [email protected]:James-Frowen/Mirage.Godot.git
Jika mengunduh tanpa symlink (seperti dari file zip) maka Anda perlu menyalin secara manual (bukan memindahkan) file dari src/Mirage.Godot/Scripts
ke src/Mirage.Godot.Example1/Mirage.Godot
ketika mengembangkan gen kode secara lokal Anda mungkin ingin menambahkan langkah ini ke awal target PostBuild sehingga akan membangun kembali proyek codegen sebelum menjalankannya
< Exec Command = " dotnet build $(ProjectDir)/../Mirage.Core/Mirage.CodeGen/Mirage.CodeGen.csproj -c Release " />