Управление оружием / стрельбой (2D платформер)

Данный проект предназначен для 2D шутера, в частности платформера. Управление и контроль оружия. Как сделать так, чтобы персонаж мог подобрать оружие или патроны к нему? Как переключать оружие, перезаряжать его, отслеживать количество патронов? Как отслеживать состояние врагов, индикатор жизни? Вот на эти вопросы, мы постарались дать свой вариант ответа. Наш проект включает рабочую демо сцену, где можно лично протестировать все возможности и изучить ее структуру. Для удобства, некоторые объекты, собраны в префабы, чтобы их сразу можно было добавить в любую игру.


Общее возможности:
  • Подобрать оружие или патроны (если это оружие уже есть).
  • Сменить оружие (колесико мыши).
  • Учет урона по вражеским юнитам.
  • Поддержка UI количества патронов.
  • Поддержка UI статуса перезарядки.
  • Поддержка UI индикатора жизни вражеских юнитов.
  • Поддержка UI вывода имени текущего оружия.
Возможности оружия:
  • Стрельба префабом или рейкастом (если префаба нет).
  • Настройки скорострельности.
  • Настройки точности стрельбы.
  • Настройки объема магазина патронов.
  • Настройки максимального количества патронов для этого оружия.
  • Настройки времени перезарядки.
Дополнительно, в проект добавлен простой скрипт управления персонажем и скрипт для камеры.

Перед началом использования нашего примера, в своих проектах, мы настоятельно рекомендуем изучить все префабы и объекты сцены. Некоторые вещи, как например, UIManager и все его UI компоненты собраны в один префаб, поэтому вы легко сможете это перенести в свою сборку и переделать визуальную составляющую.

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


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

Для врагов есть отдельный скрипт Enemy:


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



У всех прочих скриптов так же имеются подписи переменных и дополнительные комментарии в коде.

Скачать проект:
https://boosty.to/null-code/posts/ea030019-e203-4756-a6e3-f11abf215843
Тестировалось на: Unity 2019.2.6
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика