Префабы и копии
И префабы, и копии дают много экземпляров одной вещи, но решают разные задачи. Здесь — как выбрать подходящий способ.
| Способ | Что копирует | Каждая копия | Подходит для |
|---|---|---|---|
| Префаб | группу объектов | настоящий объект, который можно двигать и менять; обновляется, когда вы меняете префаб | стула, который стоит в двенадцати комнатах |
| Копии | геометрию одного объекта | только рисуется; отдельно её не поменять | десяти тысяч травинок |
Если ошибиться с выбором, вы либо будете раз за разом повторять одни и те же правки, либо сцена начнёт тормозить.
Префабы
Префаб — это сохранённая группа объектов, которую можно добавлять в сцены снова и снова. Например, лампа со своим светом и свечением, дверь с рамой и звуком или полностью настроенный персонаж со скелетом.
Когда вы меняете префаб, обновляются все его копии. Ручку двери вы чините один раз, а не в двенадцати комнатах.
Каждая копия — полноценная часть сцены. Её можно двигать и менять настройки, которые действуют только там, где она стоит.
Как только вы второй раз копируете небольшую группу объектов, сделайте из неё префаб. Если ждать до двенадцати копий, придётся сверять двенадцать наборов мелких различий.
Копии
Компонент Копии показывает геометрию одного объекта много раз. Тысяча копий стоит примерно столько же, сколько одна. Благодаря этому возможны поля травы, толпы, пояса астероидов и леса.
Расставить копии можно тремя способами:
grid(Сетка) — ровной сеткой. Добавьте смещение, чтобы сетка выглядела не такой правильной.scatter(Разброс) — свободно внутри куба или сферы.children(По дочерним) — по одной копии там, где стоит каждый дочерний объект.
С помощью children можно ускорить объекты, расставленные вручную. Расставьте их, где нужно, и
включите children. Пока этот режим включён, на месте каждого дочернего объекта показывается
копия.
Как сделать копии разными
У всех копий одна геометрия, поэтому по умолчанию они одинаковые и выглядят однообразно. Эти настройки добавляют разнообразия:
scaleMin·scaleMax— каждая копия получает случайный размер между этими значениями.rotationJitter— каждая копия получает случайный поворот.colorA·colorB— каждая копия получает оттенок между этими двумя цветами.
Если нужно ещё больше разнообразия, граф материала может узнать, какая копия сейчас рисуется, и поменять что угодно в зависимости от этого. Например, каждая копия может качаться в свой момент, выглядеть более или менее потёртой или показывать свой узор.
Количество, форма и seed (Зерно) дают одинаковую расстановку везде: в редакторе, на
телефоне и у всех в комнате мультиплеера. Десять тысяч копий не добавляют сетевого трафика.
Поменяйте seed, чтобы получить другую расстановку при тех же настройках.
maxCount ограничивает число копий. Копии сверх него не рисуются, так что опечатка в количестве
не заставит движок пытаться занять невозможный объём памяти.
Дальше: Загрузка — что загружается до открытия сцены и экран запуска.