Как сделать 2D стрельбу в Unity 5 с пулом объектов

В сегодняшнем уроке мы разберем как сделать стрельбу в Unity 2D с использованием пула объектов (Object pool) для реализации этого менее затратно. Для начала имеем: проект с объектом, который будет стрелять, картинку пули. Картинку пули мы вынесем в игру, добавим на неё BoxCollider2D и поставим галочку около Is Trigger для того, чтоб он задевал все объекты, но не останавливался, а так же сохраним её как префаб в папку Resources\Prefub. Для этого нужно из Hierarchy выделить нашу пулю и перенести её в нужную папку, тогда наша пуля будет выделена синим. Если как-то её поменять после этого, то префаб это не изменит. Нужно будет нажать на кнопку Apply под именем пули. Теперь необходимо реализовать скрипт для полета пули. Создадим скрипт BulletShot в который напишем:

Теперь пули должны лететь в нужную сторону, а через некоторое количество секунд отключаться(не забудте выставить секунды и скорость в инспекторе). Но перед тем, как подвести итоги необходимо разобраться с теми частями кода, которые вы не понимаете. Например, IEnumerator, в обычном c# он используется для циклического обращения к элементам коллекции, но в Unity его можно использовать и подругому. Если реализовать метод возвращающий этот интерфейс напрямую в классе, то его можно вызвать как корутину. Это уже специальная вещь сделанная в Unity для того чтоб код выполнялся не слошным потоком, а иногда останавливался. Корутину используют всегда, где необходимо что-то ждать. Например при анимации каста заклинания, или при перезарядке оружия. Теперь вернемся к проекту. Мы подготовили класс BulletShot для запуска его совместно с пулом объектов, но пул объектов еще не готов, как и создание пули. Для этого нам необходимо в класс нашего персонажа (PlayerController), который будет стрелять написать:

В итоге при нажатии мышки по мировому пространству будет создаваться или подгружаться уже созданная пуля и лететь в сторону поворота вашего персонажа. Далее необходимо поиграть со скоростью пули и временем её выключения для того, чтоб это подходило для вашей игры. У меня получилось вот так:

Реализованная стрельба 2D персонажа в Unity 5

Итак, в итоге этого урока мы реализовали стрельбу для нашего персонажа в Unity 5 с пулом объектов.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 5,00 из 5)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *