我们目前能够使用下面的代码加载多个 collada 文件,我们想知道如何以不同的方式命名 collada 文件。
以下是我们使用的一些函数:
function loadFiles(){
urls.push('./model/e1.dae');
urls.push('./model/e2.dae');
urls.push('./model/e3.dae');
urls.push('./model/e4.dae');
urls.push('./model/e5.dae');
for(var i =0; i<urls.length; i+=1) {
var loader = new THREE.ColladaLoader();
loader.options.convertUpAxis = true;
loader.load(urls[i], function(collada) {
var object = collada.scene;
object.updateMatrix();
object.position.x = Math.random()*500-200;
object.position.y = Math.random()*200-100;
object.scale.x = object.scale.y = object.scale.z = 2;
object.rotation.y -= (90)*(Math.PI/180);
object.rotation.x = (90)*(Math.PI/180);
object.position.z = 10;
scene.add(object);
renderer.render(scene, camera);
});
}
}
function onDocumentMouseDown( event ){
event.preventDefault();
toIntersect = [];
scene.traverse(function (child) {
if (child instanceof THREE.Mesh) {
toIntersect.push(child);
}
});
raycaster = projector.pickingRay( mouse2D.clone(), camera );
var intersects = raycaster.intersectObjects( toIntersect );
alert(intersects[0].object.name);
}
在 loadfile 函数中,我们将每个 collada 文件的地址放入一个数组中,并使用循环加载它。文件的渲染工作。但是如果对象被点击,我们无法让它提醒对象的名称和/或 ID。
单击时,所有对象都呈现警报“SketchUp”,而不是释放不同的名称。
使用 "object.name = "name"" 重命名也不起作用。我们希望您能回答这个问题。