Menu
CoddyTech
flag Ar iconالعربيةdown icon

مراجعة: قاعدة بيانات العناصر

جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 23 من 50.

challenge icon

التحدي

متوسط

يبيع متجر الحداد من قاعدة بيانات عناصر تشترك فيها جميع المتاجر في اللعبة. اكتب نوعَي الأصول وShop:

  • ItemData (في ItemData.cs): كائن ScriptableObject مع إدخال في قائمة Create والحقول العامة itemName (سلسلة نصية) وprice (عدد صحيح).
  • ItemDatabase (في ItemDatabase.cs): كائن ScriptableObject مع إدخال في قائمة Create وحقل عام واحد، items، وهو قائمة من ItemData.
  • يحتوي Shop على حقل عام database من النوع ItemDatabase. يعرض itemText العنصر المحدد بالشكل Iron Sword: 30 gold، بدءًا من العنصر الأول، ويعرض goldText الذهب بالشكل Gold: 50.
  • يحدد السهم الأيمن العنصر التالي، وبعد العنصر الأخير يعود إلى الأول؛ أما السهم الأيسر فيسير في الاتجاه المعاكس، من العنصر الأول إلى الأخير.
  • تشتري مفتاح المسافة العنصر المحدد. إذا كان اللاعب قد اشترى العنصر بالفعل، فسيُسجَّل Already owned: Iron Sword. وإذا كان سعر العنصر أعلى من كمية الذهب، فسيُسجَّل Not enough gold for Iron Sword. وإلا، تنخفض كمية الذهب بمقدار السعر، ويصبح العنصر مملوكًا، وتتحدّث النصوص، وتعرض وحدة التحكم Bought Iron Sword.
  • احتفظ بما تم شراؤه في Shop. تبقى الأصول كما هي: قاعدة البيانات مشتركة، وفي المحرر يستمر أي تغيير على أصل بعد انتهاء وضع Play.

يحتوي المشروع على أربعة أصول ItemData (Iron Sword 30، وOak Shield 20، وHealing Potion 10، وLong Bow 45)، وأصل Database يسردها بهذا الترتيب، ويضع Inspector قاعدة Database في حقل database الخاص بـ Shop. اضغط تشغيل، وتسوق، ثم اضغط تحقق.

جرّب بنفسك

using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;

public class Shop : MonoBehaviour
{
    public TMP_Text itemText;
    public TMP_Text goldText;
    public int gold = 50;

    // يوضع هنا حقل قاعدة البيانات، والتصفح باستخدام مفاتيح الأسهم، والشراء باستخدام Space
}

جميع دروس هندسة الألعاب في Unity