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