Ресурсы
Ресурс — это всё, что вы загружаете или создаёте один раз и используете во многих местах.
| Ресурс | Кем используется |
|---|---|
| model | 3D-объектом |
| image | текстурой или картинкой в карточке интерфейса |
| video | видео-поверхностью или карточкой |
| audio | источником звука или одиночными звуками из скрипта |
| font | текстом |
| material | переиспользуется на многих объектах |
| geometry | переиспользуется на многих объектах |
| prefab | сохранённым деревом объектов, которое можно бросить снова |
| splat | захватом в виде гауссовых сплатов |
| card | раскладкой интерфейса |
| patch | визуальным графом, который можно переиспользовать и вызывать |
| script | поведением на TypeScript |
Папки и пути
Ресурсы лежат в папках, как файлы. Путь — это имена папок через слэши:
Models/Trees/oak.glb
Внутри папки имена уникальны, так что путь всегда указывает ровно на одну вещь.
Скрипты импортируют друг друга по пути, а значит, переименование или перемещение ресурса переписывает импорты во всех скриптах, где он использовался. Руками чинить ничего не надо.
Модель, пришедшая со своими текстурами, убирает их под себя. Переместите или удалите модель — они последуют за ней; управлять ими по одной не придётся.
Объекты ссылаются на ресурсы, а не содержат их
Объект-модель хранит ссылку на модель. Карта цвета материала хранит ссылку на изображение. Текстовый объект хранит ссылку на шрифт.
Именно поэтому подмена дёшева: поменяйте, куда указывает ссылка, — и всё, что ей пользуется, обновится разом. Перекрасьте все вывески в сцене, отредактировав один материал.
Этим же объясняется симптом: потерянный ресурс выглядит как объект, который существует, но не рисуется, а не как сообщение об ошибке.
Загрузка идёт, пока сцена работает
Ресурсы приезжают после того, как сцена уже открылась, и это заметно:
- модель может появиться через мгновение после старта сцены;
- текстура может ненадолго отсутствовать на, казалось бы, готовом материале;
- текст появляется с запозданием, потому что верстается асинхронно.
Для всего, что должно быть на экране с самого первого кадра (титульная карточка, логотип), избегайте зависимости от большой загрузки или держите сцену скрытой, пока контент не приедет.
Дальше: Камеры — то, через что смотрит ваш посетитель.