Фрагмент кода был бы полезен, но есть довольно распространенный проблема возникает, когда вы пытаетесь получить доступ к свойствам модели до ее фактической загрузки.
Загрузчики Дона МакКарди, а также встроенные загрузчики используют асинхронные загрузчики three.js. Пока модель не загрузится, вы не сможете получить доступ к ее свойствам.
Я бы посоветовал прослушивать событие model-loaded
, оно, кажется, генерируется загрузчиками a-frame, по крайней мере, glTF one и объект один. Дон Маккарди соответствует своей работе, поэтому его «экспериментальные» загрузчики должны иметь такие же механизмы. Это должно работать так:
<script>
AFRAME.registerComponent("modelhandler", {
init:function() {
this.el.addEventListener("model-loaded", (e)=>
let child = obj.getObjectByName( "Cylinder", true );
console.log(child);
});
}
</script>
<a-entity gltf-model="url(/path/to/model.gltf)" modelhandler></a-entity>
Если это не сработает, вы также можете попробовать установить тайм-аут на 5 секунд (99% куб, а сфера загрузится в течение 5 секунд), а затем попытаться захватить дочерние объекты. Попробуйте поместить что-то вроде этого в компонент:
setTimeout(()=>{
let child = obj.getObjectByName( "Cylinder", true );
console.log(child);
}, 5000});
В противном случае, по крайней мере, Вы будете знать, что проблема не в загрузке.
person
Piotr Adam Milewski
schedule
02.01.2018