شبكات C# عالية المستوى لـ Godot تعتمد على حلول الشبكات الشهيرة مفتوحة المصدر Unity Mirror وMirage
فيديو تجريبي لمثال المشروع: https://youtu.be/Ty55PZWtsJI
يمكن العثور على وثائق إصدار الوحدة من Mirage على https://miragenet.github.io/Mirage/. سيتم تطبيق معظم المفاهيم نفسها على نسخة جودو.
git clone [email protected]:James-Frowen/Mirage.Godot.gitsrc/Mirage.Godot/Scripts إلى مشروع godot الخاص بك.csproj الرئيسي لمشروعك، أضف إشارة إلى:Mirage.Logging.csprojMirage.SocketLayer.csprojdotnet 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# بعد تجميعه، وهذا يسمح للميزات بأداء عالٍ وسهل الاستخدام.
للإعداد، قم بإضافة هذا الرمز إلى ملف csproj الافتراضي لمشروع 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 > وقم بتعديل 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 إذا كان التنزيل بدون روابط رمزية (مثل ملف مضغوط)، فستحتاج إلى نسخ الملفات يدويًا (وليس نقلها) من 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 " />