我得到了以下代码,用于将带有.MTL的简单非动画.OBJ加载到Three.js中。它确实非常简单并且运行良好,但是当我使用computeBoundingSphere()添加该行时,它失败并出现“TypeError:object.computeBoundingSphere不是函数”:
var callbackIrali1 = function ( event ) {
var object = event.content;
object.computeBoundingSphere();
scene.add( object );
};
var loaderIrali1 = new THREE.OBJMTLLoader();
loaderIrali1.addEventListener( 'load', callbackIrali1);
loaderIrali1.load( 'models/obj/irali/irali.obj', 'models/obj/irali/irali.mtl' );
问题是,我找不到回调返回的event.content可能是什么类型的对象,因此我找不到如何将computeBoundingSphere()函数应用于它。
答案 0 :(得分:3)
最后我自己发现了:
- Loader返回的对象是Object3D,
- 因此,它有2个孩子:网格和材料,
- 所以你必须找到第一个孩子,然后提取它的几何,然后计算边界球。
其中给出以下行:
object.children[0].geometry.computeBoundingSphere();