Unity создать объект в скрипте

Некоторые игры имеют постоянное количество объектов на сцене, однако обычно персонажи, сокровища и другие объекты создаются и удаляются во время игры. В Unity, игровой объект (GameObject) может быть создан используя функцию Instantiate, которая делает копию существующего объекта:-

Заметьте, что объект с которого берется копия не обязан присутствовать на сцене. Гораздо чаще используется префаб, который был перетащен на открытую переменную (public variable) из файлов проекта в панели Project. Также, копируя игровой объект (GameObject), вы копируете все компоненты оригинального объекта.

Также есть функция Destroy, которая уничтожит объект после того, как загрузка кадра будет завершена или опционально после короткой паузы:-

Заметьте что функция Destroy может уничтожать отдельные компоненты без влияния на сам объект. Частая ошибка – писать что-то вроде этого:-

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

У меня на сцене есть Canvas . Все объекты располагаются внутри (кнопки, надписи, картинки). Я пытаюсь сделать так, чтобы по нажатию на кнопку( UI.Button ) внутри Canvas создавались объекты на основе созданного Prefab’a .

Искал много разных способов, пока работающий не нашел. Объекты создаются, но вне Canvas’а и, естественно, не в тех координатах, которые мне необходимы.

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

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

Читайте также:  Виды маркеров в ворде

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

Добавить комментарий

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

Adblock detector