Цель: изучить основы создания и уничтожения игровых объектов для разработки игр.

Давайте рассмотрим пример проекта, в котором мы хотели бы, чтобы игрок мог нажимать клавишу пробела и создавать/создавать экземпляры лазерных игровых объектов. Мы хотим, чтобы лазерные объекты перемещались вверх.

Обратите внимание: использование префабов в Unity — это основная механика, которую следует использовать — особенно для создания экземпляров!

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

Затем напишите оператор if, который говорит: если клавиша пробела нажата один раз, сборка лазера создается в месте расположения игрока с исходным вращением сборки.

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

В другом сценарии под названием Laser у нас уже есть частная глобальная переменная сценария с именем _speed, которая определяет скорость лазера. Также мы переводим префаб лазера методом Update: вверх, умножаем на скорость, умножаем на дельта-время.

Затем мы просто добавляем оператор if, говорящий: если позиция лазерного префаба по оси Y больше или равна 8 (только за пределами экрана), то уничтожим эту сборку. игровой объект, к которому прикреплен скрипт (который является сборным лазером).