Ресурсы
Ресурс — это всё, что вы загружаете или создаёте один раз и используете во многих местах: модели, изображения, звуки, скрипты и многое другое. Здесь — как устроены папки и пути и как объекты используют ресурсы.
| Ресурс | Для чего |
|---|---|
| модель | 3D-объект |
| изображение | текстура или картинка в интерфейсной карточке |
| видео | поверхность с видео или карточка |
| аудио | источник звука или короткие звуки из скрипта |
| шрифт | текст |
| материал | материал, который используется на многих объектах |
| геометрия | форма, которая используется на многих объектах |
| префаб | сохранённая группа объектов, которую можно добавить снова |
| сплат | съёмка в виде гауссовых сплатов |
| карточка | макет интерфейса |
| патч | визуальный граф, который можно использовать повторно и вызывать |
| скрипт | поведение, написанное на TypeScript |
Папки и пути
Ресурсы лежат в папках, как файлы на компьютере. Путь — это имена папок и имя ресурса через косую черту:
Models/Trees/oak.glb
Внутри папки имена не повторяются, поэтому путь всегда ведёт ровно к одному ресурсу.
Скрипты импортируют друг друга по пути. Когда вы переименовываете или перемещаете ресурс, все скрипты, которые его импортируют, обновляются сами. Исправлять импорты вручную не нужно.
Если модель пришла со своими текстурами, они хранятся внутри модели. Переместите или удалите модель — и текстуры переместятся или удалятся вместе с ней. Разбираться с ними по отдельности не придётся.
Объекты ссылаются на ресурсы
В объекте хранится не копия ресурса, а ссылка на него:
- Объект-модель ссылается на модель.
- Карта цвета в материале ссылается на изображение.
- Текстовый объект ссылается на шрифт.
Поэтому, когда вы меняете ресурс, всё, что его использует, обновляется сразу. Поправьте один материал, и поменяются все вывески в сцене, которые его используют.
Отсюда и один симптом. Если ресурс пропал, объект остаётся, но не рисуется. Сообщения об ошибке при этом нет.
Ресурсы загружаются, пока сцена работает
Ресурсы, которые не загружаются заранее, приходят уже после того, как сцена открылась. Это может быть заметно:
- модель появляется чуть позже, чем начинается сцена;
- материал выглядит готовым, но какое-то мгновение на нём нет текстуры;
- текст появляется чуть позже.
Что-то должно быть на экране с самого первого кадра, например заставка с названием или логотип. Не ставьте это в зависимость от большой загрузки. Можно также загрузить такой контент заранее или держать сцену скрытой, пока контент не пришёл.
Дальше: Камеры — через что смотрит посетитель.