Menu
CoddyTech

مراجعة: الشراء من المتجر

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

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

challenge icon

التحدي

سهل

اجعل مفتاح المسافة يشتري العنصر المحدد، مع إبقاء الأصول كما هي.

  1. احتفظ بالعناصر المشتراة في List<ItemData> owned في المتجر.
  2. عند الضغط على مفتاح المسافة، يسجّل العنصر الذي تملكه Already owned: Iron Sword؛ أما العنصر الذي يكلف أكثر من gold فيسجّل Not enough gold for Iron Sword.
  3. وإلا، اطرح السعر من gold، وأضف العنصر إلى owned، وسجّل Bought Iron Sword، ثم حدّث النصوص.

اضغط «العب» واشترِ القوس الطويل. ثم اضغط «تحقق».

جرّب بنفسك

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;

public class Shop : MonoBehaviour
{
    public ItemDatabase database;
    public TMP_Text itemText;
    public TMP_Text goldText;
    public int gold = 50;
    private int index;

    void Start()
    {
        Show();
    }

    void Update()
    {
        if (Keyboard.current.rightArrowKey.wasPressedThisFrame)
        {
            index = (index + 1) % database.items.Count;
            Show();
        }
        if (Keyboard.current.leftArrowKey.wasPressedThisFrame)
        {
            index = (index - 1 + database.items.Count) % database.items.Count;
            Show();
        }
        // Space: اشترِ العنصر المحدد
    }

    void Show()
    {
        ItemData item = database.items[index];
        itemText.text = item.itemName + ": " + item.price + " gold";
        goldText.text = "Gold: " + gold;
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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

تدرّب بنفسك: Playground لـ Unity