Рецепт: Создание новых объектов во время выполнения (Unity C#)

recipe_code

Игры включают в себя не только управление одним персонажем, но и динамическое создание новых игровых объектов. Для создания объектов и существуют префабы (prefabs). В таком случае, что же такое префаб? Вы можете найти множество определений но я постараюсь объяснить как можно проще.

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

Давайте начнём, создайте куб на сцене и отредактируйте его так как хотите. Затем создайте папку Prefabs и перетащите туда куб. Это всё! Вы создали префаб, теперь вы можете удалить куб со сцены. У нас есть точная копия этого куба и мы будем её использовать во время выполнения.

Метод Instantiate() даёт нам точную копию объекта с возможностью изменения позиции. Перетащите этот скрипт на камеру, присвойте ему префаб куба и протестируйте его. Будет создана стена из 9 точных копий(клонов) префаба куба.

Capture

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

Оригинал тут.