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.
Wyzwanie
TrudnyInspector 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.coinsTextwyświetla je jakoCoins: 100. - Każde kliknięcie Work przynosi
paymonet. - 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świetlaHelmet: 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.
inventoryTextwyświetla posiadane przedmioty w kolejności na półce, jakoInventory: Helmet, Cape, albo wyświetlaInventory: 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;
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Tworzenie prawdziwych gier
1Tekst na ekranie
Canvas i tekstWyświetlanie wynikuFormatowanie liczbOdliczanie czasuPowtórka: prędkościomierz4Sceny i poziomy
Wczytaj scenęUruchom poziom ponownieNastępny poziomZachowaj między scenamiPodsumowanie: wybór poziomu10Projekt: platformówka 3D
TrasaRuchome platformy2Przyciski i ekrany
Przyciski i onClickLambdyPodłączanie w InspectorzeWłączanie i wyłączanie paneliPaski zdrowiaPodsumowanie: sklep z ulepszeniami5Zapisywanie za pomocą PlayerPrefs
Zapisz liczbęWczytywanie z wartością domyślnąNajlepszy wynikZapisz ustawieniaPodsumowanie: monety w banku