В настоящее время игрок в моем космическом шутере может бесконечно стрелять из своего лазера без каких-либо последствий. Мне это не нравится, поэтому я собираюсь ввести в игру лимит боеприпасов. Я ограничу его до 15 выстрелов и воспроизведу звуковой эффект, когда игрок попытается выстрелить без патронов. Не волнуйтесь, я добавлю усиление, чтобы пополнить боеприпасы игрока. Я НЕ НАСТОЛЬКО садист.

Ограничение боеприпасов легко, так как почти все может содержаться в скрипте Player. Я создал две переменные типа int: одну для указания максимального количества боеприпасов, а другую для хранения текущего количества боеприпасов. Я хочу, чтобы один из них служил ориентиром, чтобы можно было легко изменить максимальный боезапас позже, если это необходимо. На данный момент это будет 15 выстрелов.

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

Количество патронов в методе ShootLaser() уменьшено на 1, но я заметил один небольшой недостаток. Игрок может расстрелять все свои боеприпасы на экране астероида, даже не запуская игру, поэтому боеприпасы не упадут, и он застрянет там. Я сделал логическое значение в SpawnManager, чтобы отслеживать, началось ли создание бонусов, и теперь я уменьшаю количество боеприпасов только в том случае, если активен спаун.

Думаю, игрок должен знать, сколько у него патронов, а? Для этого мне нужно сделать элемент пользовательского интерфейса. Я добавил текстовый объект на холст и создал для него новую переменную в UIManager. Я создал общедоступный метод в UIManager, чтобы принимать целое число в качестве аргумента и обновлять текст боеприпасов текущим количеством боеприпасов. Он будет вызываться из скрипта игрока каждый раз, когда лазер срабатывает.