Повторение: покупка в магазине
Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 29 из 64.
В этой главе данные были перемещены в ресурсы, общие для многих объектов. Предметы магазина — это такие ресурсы, поэтому купленное игроком должно храниться в магазине, а не в самих предметах.
Задание
ЛегкоПусть Space покупает выбранный предмет, не изменяя ассеты.
- Храни купленные предметы в
List<ItemData> ownedв Shop. - При нажатии Space для уже купленного предмета выводи в журнал
Already owned: Iron Sword; если предмет стоит больше, чемgold, выводиNot enough gold for Iron Sword. - В противном случае вычти цену из
gold, добавь предмет вowned, выведи в журналBought Iron Swordи обнови текст.
Нажми «Играть» и купи Long Bow. Затем нажми «Проверить».
Попробуйте сами
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: купить выбранный предмет
}
void Show()
{
ItemData item = database.items[index];
itemText.text = item.itemName + ": " + item.price + " gold";
goldText.text = "Gold: " + gold;
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Архитектура игр в Unity
1Компоненты, а не иерархии
Небольшие компонентыБазовый скрипт врагаАбстрактные компонентыКомпоненты работают вместеПовторение: модульная турельПовторение: спаренная пушка4Сериализованные данные
Сериализуемые классыСписки в инспектореПеречисления в инспектореПовторение: таблица добычиПовторение: определяем добычу2Интерфейсы в Unity
IDamageableИнтерфейсы и TryGetComponentGetComponentsПовторение: клавиша взаимодействияПовторение: ближайший в пределах досягаемости5ScriptableObjects
Ресурсы данныхХарактеристики оружияОбщие настройкиСохраняем ветерВолны как данныеПовторение: база предметовПовторение: покупка в магазинеПотренируйтесь самостоятельно: Песочница Unity