Экземпляры префабов в версии 1.2.0
Создание экземпляров префабов — это процесс создания объектов и компонентов из файла .bin
/.glb
.
Поскольку новый метод создания экземпляров основан на концепции мультисцен, мы рекомендуем вам сначала быстро ознакомиться с нашим постом в блоге о мультисценах.
До версии 1.2.0
Создание экземпляров “префабов” было доступно через (теперь устаревший) метод append:
Этот API имеет ограничения:
- Сцену нужно загрузить и распарсить 100 раз.
- Каждый
Zombie.bin
создает новые мэш-сетки, текстуры и материалы.
Давайте посмотрим, как Wonderland Engine 1.2.0 помогает решить эти проблемы!
Создание экземпляров
Любая сцена, загруженная через loadScene, может быть получателем создания экземпляра:
Поскольку результат является экземпляром Object3D, вы можете изменить иерархию следующим образом:
Вы можете вызвать instantiate() для активных и неактивных сцен. Хотя приведенный выше пример показывает, как использовать его в активной сцене, создание экземпляров в неактивной сцене работает так же:
1const zombie = await engine.loadPrefab('Zombie.bin');
2const zombieHead = zombie.findByName('Head')[0];
3zombieHead.addComponent(LookAtComponent);
4
5const nextScene = engine.load('NextScene.bin');
6
7// Только после создания экземпляра, LookAtComponent.onActivate()
8// и LookAtComponent.start() будут вызваны.
9nextScene.instantiate(zombie);
GLTF
Создание экземпляров не ограничивается форматом сцены Wonderland Engine (.bin), но также может использоваться с glTF:
Префабы glTF также имеют дополнительные методы для управления расширениями. Для получения более подробной информации взгляните на PrefabGLTF API.
Замечание о ресурсах
Как упоминалось в посте в блоге о мультисценах, ресурсы перемещаются в экземпляр engine при загрузке. Это позволяет нескольким сценам ссылаться на одни и те же ресурсы, не дублируя память.
Компоненты, созданные посредством instantiation, следовательно:
- Ссылаются на одни и те же ресурсы
- Удаление ресурса приведет к тому, что экземпляр будет ссылаться на нулевой элемент
Дальнейшие шаги
Вот несколько ссылок, которые помогут вам начать использовать создание экземпляров в ваших проектах:
Мы с нетерпением ждем, как сообщество будет использовать создание экземпляров для создания потрясающих впечатлений!