Стрельба, перезарядка, разброс пуль [2D]

Скрипт оружия для двухмерного платформера. В наличии два режима стрельбы, префабом или рейкастом, первый вариант подойдет для, например, плазменного оружия, а второй вариант для обычного пистолета или автомата. Есть учет количества патронов и перезарядка, как вручную, так и автоматически, если магазин пустой, а игрок нажимает клавишу выстрела. Кроме этого, мы добавили возможность настроить разброс пуль и добавили настройки скорострельности. Плюс, оружие может выстреливать сразу несколько пуль/рейкастов одновременно. Таким образом, данный скрипт можно настроить как: пистолет, автомат, дробовик и т.п.

Важное примечание! При создании модели персонажа с оружием, по умолчанию, и "лицо" персонажа и ствол пушки, должны быть "смотреть" вправо. Это необходимо для корректного переключения влево/вправо для модели. Саму модель можно ставить в любую часть экрана, главное чтобы на старте сцены, персонаж смотрел в правую сторону.

Теперь, сделаем префаб пули:

Стрельба, перезарядка, разброс пуль [2D]

На префабе должен быть коллайдер в режиме триггера и риджитбоди с отключенной гравитацией.



Важно! Скрипт Weapon2D.cs управляет вращением оружия по оси Z, можно указать торс персонажа или только модель оружия. И еще скрипт управляет разворотом персонажа, так как это напрямую зависит от положения курсора. Поэтому если в вашем скрипте персонажа есть функция разворота, ее необходимо отключить.

Скачать все скрипты и демо проект:
https://boosty.to/null-code/posts/0f1e06b1-2132-4858-a917-dcad41b3d0ac
Тестировалось на: Unity 2017.1.1

Комментариев 12

Офлайн
и ни какого видео((((
Офлайн
SlavaXD 7 октября 2017
зато можно загрузить проект на движок и посмотреть
Офлайн
igor1906 10 октября 2017
А подскажите пожалуйста как сделать гильзы при стрельбе?
Офлайн
Light 10 октября 2017
igor1906, ну это обычные 2д ритжитбоди объекты, думаю лучше всего сделать пул из 10-15 элементов, и прогонять их циклом во время стрельбы.
Офлайн
TeDj 21 октября 2017
Добрый день!
Скажите, пожалуйста, в новой версии 2017.2.0 добавили Tileset. Можно ли его использовать для match3? Просто раньше сетку создавали с помощью скрипта и добавляли элементы префабами. А с новым Tileset'ом , если смотреть оптимистично, дело было бы проще. В инете пока нет такой информации
Офлайн
TEEAAA 2 ноября 2017
а как на андроид?
Офлайн
Light 13 ноября 2017
TeDj, это инструмент для редактора, чтобы быстро "рисовать" игровую карту.
Офлайн
P3LM3N 12 апреля 2018
загрузил демо, но персонаж не стреляет
Офлайн
alowp 21 июля 2018
P3LM3N,
стрельба правой кнопкой мыши. всё работает

Столкнулся с такой проблемой... В скрипте можно выставлять скорострельность. И всё было бы замечательно, но если выставить маленькую скорострельность, то просто кликая на мышку как можно быстрее, ты стреляешь чаще чем выставленная скорострельность...
Офлайн
Light 21 июля 2018
alowp, попробуй добавить проверку, когда ПКМ не нажата.

Заменить:

timeout = Mathf.Infinity;

На:

timeout += Time.deltaTime;
if (timeout > fireRate)
{
    timeout = Mathf.Infinity;
}
Офлайн
TitoZ 22 февраля 2019
А где основной скрипт?
Офлайн
Light 22 февраля 2019
TitoZ, по ссылке на Патреоне.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика