1

我一直在按照这个示例使用 three.js 加载 .obj 模型。因为我需要加载多个模型,所以我尝试了这个

loader.addEventListener( 'load', function ( event ) {

var object = event.content;

object.position.y = - 80;
scene.add( object );

});
loader.load( 'obj/model1.obj' );
loader.load( 'obj/model2.obj' );

首先:我不知道这是否是正确的方法,因为我搜索但没有找到任何加载多个 .obj 模型的教程。

第二:我希望能够在屏幕上点击不同的模型。我试过这个似乎对我不起作用。对此有何建议?

4

2 回答 2

3

此示例向您展示了加载多个模型的模式:

http://mrdoob.github.com/three.js/examples/webgl_loader_json_objconverter.html

关于检测点击的对象,根据您的型号,您可能需要将recursive标志设置为true

ray.intersectObjects( objects, true );
于 2012-11-14T16:58:35.947 回答
1

好吧,由于您没有提供足够的代码来完全解释您的问题,我猜想对于第二部分,您必须确保将对象放入对象数组中,例如:

var objects = [];

初始化你做的对象后:

objects.push( object );

现在您有一个数组,您可以在其中检查实现 THREE.Ray 后相交的对象。

于 2012-11-14T16:24:21.000 回答