Menu
CoddyTech

Powtórka: Kupowanie w sklepie

Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 29 z 64.

W tym rozdziale przeniesiono dane do zasobów współdzielonych przez wiele obiektów. Przedmioty w sklepie są takimi zasobami, więc to, co kupuje gracz, należy do sklepu, a nie do tych przedmiotów.

challenge icon

Wyzwanie

Łatwy

Spraw, by Spacja kupowała wybrany przedmiot, nie zmieniając zasobów.

  1. Przechowuj kupione przedmioty w List<ItemData> owned w sklepie.
  2. Po naciśnięciu Spacji dla posiadanego przedmiotu zapisz w logu Already owned: Iron Sword; dla przedmiotu kosztującego więcej niż gold zapisz w logu Not enough gold for Iron Sword.
  3. W przeciwnym razie odejmij cenę od gold, dodaj przedmiot do owned, zapisz w logu Bought Iron Sword i zaktualizuj teksty.

Naciśnij „Graj” i kup Long Bow. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

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: kup wybrany przedmiot
    }

    void Show()
    {
        ItemData item = database.items[index];
        itemText.text = item.itemName + ": " + item.price + " gold";
        goldText.text = "Gold: " + gold;
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Architektura gier w Unity

Poćwicz samodzielnie: Edytor online Unity