Powtórka: baza danych przedmiotów
Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 23 z 50.
Wyzwanie
ŚredniKuźnia sprzedaje przedmioty z bazy danych, z której będą korzystać wszystkie sklepy w grze. Napisz dwa typy zasobów oraz Shop:
ItemData(w pliku ItemData.cs): ScriptableObject z pozycją w menu Create i publicznymi polamiitemName(typu string) orazprice(typu int).ItemDatabase(w pliku ItemDatabase.cs): ScriptableObject z pozycją w menu Create i jednym publicznym polemitems, czyli listą elementów ItemData.Shopma publiczne poledatabasetypu ItemDatabase.itemTextwyświetla wybrany przedmiot jakoIron Sword: 30 gold, zaczynając od pierwszego przedmiotu, agoldTextwyświetla liczbę sztuk złota jakoGold: 50.- Strzałka w prawo wybiera następny przedmiot, a po ostatnim ponownie pierwszy; strzałka w lewo działa w przeciwnym kierunku — od pierwszego przedmiotu do ostatniego.
- Spacja kupuje wybrany przedmiot. Jeśli gracz już kupił dany przedmiot, w logu pojawi się
Already owned: Iron Sword. Jeśli przedmiot kosztuje więcej niż gracz ma sztuk złota, w logu pojawi sięNot enough gold for Iron Sword. W przeciwnym razie liczba sztuk złota zmniejsza się o cenę, przedmiot zostaje dodany do posiadanych, teksty zostają zaktualizowane, a w konsoli pojawia sięBought Iron Sword. - Przechowuj zakupione przedmioty w Shop. Zasoby pozostają bez zmian: baza danych jest współdzielona, a w edytorze zmiana zasobu zachowuje się po zakończeniu trybu Play.
Projekt zawiera cztery zasoby ItemData (Iron Sword 30, Oak Shield 20, Healing Potion 10, Long Bow 45), zasób Database, w którym są one wymienione w tej kolejności, oraz pole Database przypisane przez Inspektor do pola database w Shop. Naciśnij Play, zrób zakupy, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class Shop : MonoBehaviour
{
public TMP_Text itemText;
public TMP_Text goldText;
public int gold = 50;
// Tutaj umieść pole bazy danych, przeglądanie za pomocą strzałek i kupowanie za pomocą Space
}
Wszystkie lekcje w sekcji Architektura gier w Unity
1Komponenty, nie hierarchie
Małe komponentyPodstawowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPodsumowanie: modułowa wieżyczka4Dane serializowane
Klasy serializowalneListy w InspectorzeWyliczenia w InspectorzePodsumowanie: tabela łupów10Projekt: Arena przetrwania
BohaterTypy wrogów2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPodsumowanie: klawisz interakcji5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaFale jako danePowtórka: baza danych przedmiotów8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearest