Upgrades Manager

Интеграция в проект:

  1. В любом удобном месте создаем ScriptableObject UpgradeData (Create > Installers > UpgradeData) и заполняем данными

  2. На канвасе создаем объект и накидываем на него скрипт UpgradesManager

  3. В UpgradesManager создаем дочерний объект(Button(TextMeshPro)) и накидываем скрипт UpgradeButton, после чего прокидываем ссылки на тексты и на UpgradeData, созданный ранее

Поля ScriptableObject(UpgradeData):

  1. ButtonName – название улучшения, используем, чтобы обращаться к улучшению через Singleton<UpgradeManager>

  2. StartPrice – стартовая цена улучшения

  3. PriceIncreaseValue – Значение на/в которое будет увеличиваться стоимость каждого последующего улучшения

  4. IncreaseType – Тип увеличения стоимости каждого последующего улучшения

Типы увеличения стоимости улучшения:

  1. Sum – увеличение стоимости каждый раз на определенную сумму, таким образом стоимость улучшения будет следующей (1 lvl - 100, 2 lvl - 125, 3 lvl - 150 и т.д.)

  2. Multiply – увеличение стоимости каждый раз во сколько-то раз, таким образом стоимость улучшения будет следующей (1 lvl - 100, 2 lvl - 200, 3 lvl - 400 и т.д.)

Как использовать:

  1. В созданную кнопку добавляем Listener “UpgradeButton > Upgrade()”, проверка на то хватает ли монет происходит внутри метода, там же происходит вычитание денег из CoinsManager’a и увеличение стоимости следующего улучшения

  2. Кнопки должны обязательно лежать внутри объекта UpgradesManager для того, чтобы происходила автоматическая инициализация в методе Awake()

  3. К улучшениям можно обратиться через Singleton:

    1. GetUpgradesLevel(Название улучшения) – возвращает текущий уровень улучшения

    2. SubscribeOnChanges(Название улучшения, Action) – Подписка на событие улучшения

Last updated