UE4 | جرد متعددة اللاعبين # 3 | هيكل التفاعل




في هذه المقالة ، سنلقي نظرة على هيكل المخزون الذي قمت بتطبيقه على مشروعي متعدد اللاعبين. هذا القسم صغير جدًا ولا يحتوي على كود.


الجرد نفسه هو مكون يستخدم ليس فقط للشخصية ، ولكن أيضًا لأي كائن في اللعبة ، والذي ، وفقًا للسيناريو ، يمكن أن يكون تخزينًا للعناصر. على سبيل المثال: صندوق ، صندوق ، صندوق ، خزانة ، إلخ.




يحتوي هذا المكون على TArray ، حيث تخزن عناصره الحد الأدنى من المعلومات الضرورية:


  1. معرف الكائن ، في شكل GameplayTag . كما قلت سابقًا ، فإن GameplayTag أكثر ملاءمة من ، على سبيل المثال ، FName ، لأنها تقلل بشكل كبير من مخاطر الأخطاء.
  2. عدد العناصر في الفتحة المحددة بواسطة المتغير int .
  3. فئة الكائن لفهم كيفية تطبيقه. لهذا الغرض ، بدلاً من Enum ، يمكنك استخدام GameplayTagsContainer ، مما سيسمح لنا بإسناد الكائن إلى العديد من الأنواع دفعة واحدة إذا لزم الأمر.
  4. الخصائص الفريدة للكائن ، والتي يتم تخزينها كهيكل من مجموعة من GameplayTag وتعويم . هنا يمكنك تخزين كل من المعلمات والمعدلات.

لا توجد روابط للكائنات نفسها في هيكل المخزون هذا ، لأنه بعد حفظ اللعبة وتحميلها ، فإنها تشير إلى المناطق التي تخزن بالفعل بيانات أخرى. وبالتالي ، فأنت بحاجة إلى أداة يمكنها استعادة (إعادة) جميع الأشياء بعد تحميل اللعبة. هنا يأتي DataAsset إلى الإنقاذ ، والذي يتوفر دائمًا على جانب الخادم (لأنه في حالتنا قمنا بتوصيله عبر GameMode ) وهو جاهز للمساعدة في وضع الكائن على المسرح.


يحتوي مكون المخزون أيضًا على منطق إزالة وإضافة العدد المطلوب من الكائنات ، منطق ملء الفتحات. يجب أن تعمل جميع الوظائف التي تم تشغيلها في الحاوية على جانب الخادم فقط.


هيكل تفاعل المخزون وقاعدة البيانات على النحو التالي

يتم تكوين الخصائص الفريدة للكائن ، مثل المكونات الإضافية والمنطق بسهولة باستخدام C ++ و / أو مخطط .


في القسم التالي ، سأوضح كيف يمكنك توصيل المكون الذي تم إنشاؤه بالحرف أو أي كائن آخر.


نرحب بأي نقد بناء. يفضل أن تكون مدعومة بالاقتراحات.


PS في المادتين الأولين أضيفت صور توضيحية.

Source: https://habr.com/ru/post/ar419347/


All Articles