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.
Wyzwanie
ŁatwySpraw, by Spacja kupowała wybrany przedmiot, nie zmieniając zasobów.
- Przechowuj kupione przedmioty w
List<ItemData> ownedw sklepie. - Po naciśnięciu Spacji dla posiadanego przedmiotu zapisz w logu
Already owned: Iron Sword; dla przedmiotu kosztującego więcej niżgoldzapisz w loguNot enough gold for Iron Sword. - W przeciwnym razie odejmij cenę od
gold, dodaj przedmiot doowned, zapisz w loguBought Iron Swordi 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;
}
}
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
1Komponenty, nie hierarchie
Małe komponentyBazowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPowtórka: modułowa wieżyczkaPowtórka: podwójne działo4Dane serializowane
Klasy serializowalneListy w InspectorzeEnumy w InspectorzePodsumowanie: tabela łupówPodsumowanie: losowanie łupów2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPowtórka: klawisz interakcjiPowtórka: najbliższy w zasięgu5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaOcal wiatrFale jako danePowtórka: Baza przedmiotówPowtórka: Kupowanie w sklepie8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearestPoćwicz samodzielnie: Edytor online Unity