Перейти к основному содержимому

Префабы и копии

И префабы, и копии дают много экземпляров одной вещи, но решают разные задачи. Здесь — как выбрать подходящий способ.

СпособЧто копируетКаждая копияПодходит для
Префабгруппу объектовнастоящий объект, который можно двигать и менять; обновляется, когда вы меняете префабстула, который стоит в двенадцати комнатах
Копиигеометрию одного объектатолько рисуется; отдельно её не поменятьдесяти тысяч травинок

Если ошибиться с выбором, вы либо будете раз за разом повторять одни и те же правки, либо сцена начнёт тормозить.

Префабы​

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

Когда вы меняете префаб, обновляются все его копии. Ручку двери вы чините один раз, а не в двенадцати комнатах.

Каждая копия — полноценная часть сцены. Её можно двигать и менять настройки, которые действуют только там, где она стоит.

Делайте префаб, когда копируете что-то второй раз

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

Копии​

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

Расставить копии можно тремя способами:

  • grid (Сетка) — ровной сеткой. Добавьте смещение, чтобы сетка выглядела не такой правильной.
  • scatter (Разброс) — свободно внутри куба или сферы.
  • children (По дочерним) — по одной копии там, где стоит каждый дочерний объект.

С помощью children можно ускорить объекты, расставленные вручную. Расставьте их, где нужно, и включите children. Пока этот режим включён, на месте каждого дочернего объекта показывается копия.

Как сделать копии разными​

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

  • scaleMin · scaleMax — каждая копия получает случайный размер между этими значениями.
  • rotationJitter — каждая копия получает случайный поворот.
  • colorA · colorB — каждая копия получает оттенок между этими двумя цветами.

Если нужно ещё больше разнообразия, граф материала может узнать, какая копия сейчас рисуется, и поменять что угодно в зависимости от этого. Например, каждая копия может качаться в свой момент, выглядеть более или менее потёртой или показывать свой узор.

Одна и та же расстановка на любом устройстве

Количество, форма и seed (Зерно) дают одинаковую расстановку везде: в редакторе, на телефоне и у всех в комнате мультиплеера. Десять тысяч копий не добавляют сетевого трафика.

Поменяйте seed, чтобы получить другую расстановку при тех же настройках.

maxCount ограничивает число копий. Копии сверх него не рисуются, так что опечатка в количестве не заставит движок пытаться занять невозможный объём памяти.


Дальше: Загрузка — что загружается до открытия сцены и экран запуска.