واجهة برمجة تطبيقات عالية المستوى لصنع ألعاب الشبكات في Unity، تستخدم RevenantX/LiteNetLib
الهدف من TinyBirdNet هو إنشاء بيئة يمكنك من خلالها إضافة الشبكات بسهولة إلى ألعاب الوحدة، أثناء استخدام LiteNetLib خلف الكواليس.
يدعم الوحدة 2017 وما فوق
تم اختبار الإصدار الحالي عبر نظامي التشغيل Windows وLinux، يرجى فتح مشكلة إذا وجدت أي أخطاء.
ستوفر لك إضافة مجلد TinyBirdNet ضمن الأصول إلى مشروعك كل ما تحتاجه لبدء التواصل في لعبتك.
ستجد داخل مجلد الأمثلة عرضًا توضيحيًا بسيطًا للعبة متصلة بالشبكة.
ستحتاج إلى تمكين TinyNetGameManager
أو مثيل مشتق دائمًا في لعبتك، لذا يرجى إضافة واحد إلى المشهد الأول ووضع علامة عليه كـ "لا تدمر عند التحميل". مطلوب "ConnectKey" فريد حتى تتمكن لعبتك من الاتصال، ويفضل تضمين الإصدار الحالي من التطبيق الخاص بك على سلسلة المفاتيح.
سير العمل الموصى به هو إنشاء فئة مشتقة من TinyNetPlayerController
وتنفيذ منطق التحكم في المشغل الخاص بك هناك، لكل لاعب جديد في اللعبة يتم إنشاء TinyNetPlayerController
جديد. يمكنك إرسال المدخلات بين وحدات تحكم مشغل العميل والخادم باستخدام TinyNetInputMessage
.
يجب أن يحتوي كل GameObject
ترغب في تضمين رمز الشبكة فيه على TinyNetIdentity
واحد، وبعد ذلك، يجب على الفئات التي ترغب في تضمين رمز الشبكة إما أن تقوم بتنفيذ ITinyNetComponent
أو يمكنك جعله تابعًا لـ TinyNetBehaviour
للوصول إلى العديد من الميزات مثل [TinyNetSyncVar]
وRPC طُرق.
من خلال إنشاء فئات مشتقة من TinyNetBehaviour
يمكنك الاستمتاع بالتسلسل وإلغاء التسلسل التلقائي، على الرغم من أن التسلسل/إلغاء التسلسل اليدوي واستخدام ITinyNetMessage
لا يزال ممكنًا.
يمكنك مزامنة ما يصل إلى 64 خاصية لكل TinyNetBehaviour
باستخدام السمة [TinyNetSyncVar]
. يجوز لك في أي وقت تجاوز هذا الحد من خلال تطبيق طريقتي TinySerialize
و TinyDeserialize
الخاصتين بك.
أنت قادر على إنتاج وتدمير الكائنات الموجودة في الشبكة بمجرد استدعاء TinyNetServer.instance.SpawnObject
و TinyNetServer.instance.DestroyObject
على الخادم، مع وجود GameObject صالح يحتوي على TinyNetIdentity
.
تذكر تسجيل جميع المباني الجاهزة التي تحتوي على TinyNetIdentity
على TinyNetGameManager
، يدويًا أو عن طريق النقر فوق زر تسجيل جميع المباني الجاهزة TinyNetIdentity في مفتش TinyNetGameManager
.