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

Ресурсы

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

РесурсДля чего
модель3D-объект
изображениетекстура или картинка в интерфейсной карточке
видеоповерхность с видео или карточка
аудиоисточник звука или короткие звуки из скрипта
шрифттекст
материалматериал, который используется на многих объектах
геометрияформа, которая используется на многих объектах
префабсохранённая группа объектов, которую можно добавить снова
сплатсъёмка в виде гауссовых сплатов
карточкамакет интерфейса
патчвизуальный граф, который можно использовать повторно и вызывать
скриптповедение, написанное на TypeScript

Папки и пути​

Ресурсы лежат в папках, как файлы на компьютере. Путь — это имена папок и имя ресурса через косую черту:

Models/Trees/oak.glb

Внутри папки имена не повторяются, поэтому путь всегда ведёт ровно к одному ресурсу.

Скрипты импортируют друг друга по пути. Когда вы переименовываете или перемещаете ресурс, все скрипты, которые его импортируют, обновляются сами. Исправлять импорты вручную не нужно.

Части импортированного файла держатся вместе

Если модель пришла со своими текстурами, они хранятся внутри модели. Переместите или удалите модель — и текстуры переместятся или удалятся вместе с ней. Разбираться с ними по отдельности не придётся.

В объекте хранится не копия ресурса, а ссылка на него:

  • Объект-модель ссылается на модель.
  • Карта цвета в материале ссылается на изображение.
  • Текстовый объект ссылается на шрифт.

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

Отсюда и один симптом. Если ресурс пропал, объект остаётся, но не рисуется. Сообщения об ошибке при этом нет.

Ресурсы загружаются, пока сцена работает​

Ресурсы, которые не загружаются заранее, приходят уже после того, как сцена открылась. Это может быть заметно:

  • модель появляется чуть позже, чем начинается сцена;
  • материал выглядит готовым, но какое-то мгновение на нём нет текстуры;
  • текст появляется чуть позже.

Что-то должно быть на экране с самого первого кадра, например заставка с названием или логотип. Не ставьте это в зависимость от большой загрузки. Можно также загрузить такой контент заранее или держать сцену скрытой, пока контент не пришёл.


Дальше: Камеры — через что смотрит посетитель.