В этой статье мы добавим ограниченное количество боеприпасов для игрока, которое будет отображаться на экране, и коллекционный предмет для пополнения этих боеприпасов.

Боеприпасы

Реализовать ограниченный запас боеприпасов довольно просто. В скрипте Player вам нужны две переменные: максимальный боезапас и текущий боезапас.

Игрок должен начать с полными боеприпасами. Итак, в меню «Пуск» установите текущее количество боеприпасов равным максимальному количеству боеприпасов.

В обновлении при проверке того, может ли игрок стрелять, добавьте еще одно условие, чтобы проверить, что текущий боезапас больше 0.

В методе FireLaser после создания экземпляра Laser Prefab вычтите единицу из текущего боезапаса.

С добавленным кодом теперь игрок может выстрелить только 15 раз, прежде чем закончатся патроны. Теперь, чтобы сделать его видимым на экране.

Боеприпасы

Чтобы показать количество боеприпасов, все, что нужно, это текстовый игровой объект.

В сценарии UIManager добавьте переменную Text, которая будет ссылкой на Text GameObject.

Теперь добавьте общедоступный метод с аргументами для оставшихся боеприпасов и максимального количества боеприпасов, чтобы обновить текст боеприпасов с оставшимися боеприпасами и максимальным количеством боеприпасов.

Вернитесь к скрипту Player, в Start после вызова Init и установки текущих боеприпасов вызовите метод UpdateAmmo в UIManager и передайте текущие боеприпасы и максимальные боеприпасы. Это установит текст боеприпасов на 15/15.

Теперь добавьте вызов UpdateAmmo, передавая текущий боезапас и максимальный боезапас после вычитания единицы из текущего боезапаса в методе FireLaser.

Подключите игровой объект Ammo Text к полю Ammo Text в скрипте Canvas UIManager.

В игровом режиме текст будет установлен на максимальный боезапас в начале и будет уменьшаться на единицу каждый раз, когда игрок стреляет.

Боеприпасы коллекционные

Чтобы создать предмет коллекционирования боеприпасов, нам нужно создать общедоступный метод в сценарии Player, чтобы изменить текущий боезапас на максимальный боезапас, а затем вызвать метод UpdateAmmo, передав измененный текущий боезапас и максимальный боезапас для обновления пользовательского интерфейса. Метод ChangeAmmo — это то, что будет вызывать предмет коллекционирования боеприпасов при его сборе.

В сценарии PowerUp нам нужно добавить элемент Ammo в перечисление PowerUpType для предмета коллекционирования боеприпасов.

Затем нам нужно добавить случай PowerUpType.Ammo в оператор switch и заставить его вызывать метод ChangeAmmo в Player.

Теперь создадим Ammo Power Up для включения скрипта.

При этом усиление боеприпасов теперь восстанавливает игроку полный боезапас.