Menu
CoddyTech

Sklep i ekwipunek

Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 54 z 56.

Między poziomami bohater odwiedza sklep. Na półce czekają trzy przedmioty: hełm, buty i peleryna. Każdy z nich ma przycisk z ceną, a przycisk Praca pozwala zarabiać monety na przedmioty, na które bohaterowi jeszcze nie wystarcza. Kupione przedmioty trafiają do ekwipunku wyświetlanego na dole, a pozostałe monety i posiadane przedmioty są nadal dostępne przy następnym uruchomieniu gry.

Napisz dwa skrypty: Shop dla obiektu Shop oraz ShopItem dla przycisku każdego przedmiotu.

challenge icon

Wyzwanie

Trudny

Inspector przekazuje Shop wartości startCoins (100), pay (25), coinsText, inventoryText, workButton i items — trzy elementy ShopItem w kolejności na półce. Każdemu ShopItem przekazuje itemName i price (Helmet 40, Boots 60, Cape 120), label (tekst na jego przycisku) oraz shop.

  • Monety są zapisywane pod kluczem Coins; gracz, dla którego nic nie zapisano, zaczyna z liczbą monet równą startCoins. coinsText wyświetla je jako Coins: 100.
  • Każde kliknięcie Work przynosi pay monet.
  • Przedmiot jest posiadany, gdy pod kluczem Owned_ połączonym z jego nazwą (Owned_Helmet) zapisana jest wartość 1. Gdy przedmiot jest na sprzedaż, jego etykieta wyświetla Helmet: 40, a gdy jest posiadany — Helmet: owned.
  • Przycisk przedmiotu można kliknąć tylko wtedy, gdy przedmiot nie jest posiadany, a gracz ma co najmniej tyle monet, ile wynosi jego cena. Kliknięcie kupuje przedmiot: cena jest odejmowana od liczby monet, a przedmiot staje się posiadany.
  • inventoryText wyświetla posiadane przedmioty w kolejności na półce, jako Inventory: Helmet, Cape, albo wyświetla Inventory: empty.
  • Każda zmiana jest natychmiast zapisywana, a wszystkie teksty i przyciski pokazują nowy stan.

Naciśnij Play, zrób zakupy i popracuj, naciśnij Stop, a następnie ponownie Play, po czym naciśnij Check.

Spróbuj swoich sił

using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class Shop : MonoBehaviour
{
    public int startCoins = 100;
    public int pay = 25;
    public TMP_Text coinsText;
    public TMP_Text inventoryText;
    public Button workButton;
    public ShopItem[] items;
}
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Tworzenie prawdziwych gier