THREE.js中的多个.obj模型并检测单击的对象

时间:2012-11-14 16:04:06

标签: javascript webgl three.js

我一直关注this示例,使用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模型。

第二:我希望能够在屏幕上点击不同的模型。我试过了this,这似乎不适合我。对此有何建议?

2 个答案:

答案 0 :(得分:3)

此示例显示了加载多个模型的模式:

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

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

ray.intersectObjects( objects, true );

答案 1 :(得分:1)

好吧,既然你没有提供足够的代码来完全解释你的问题,我猜你的第二部分你必须确保把对象放在一个对象数组中,如:

var objects = [];
初始化对象后

objects.push( object );

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