в настоящее время мы можем загружать несколько файлов 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 в массив и загружаем его с помощью цикла. Рендеринг файла работает. Но мы не можем заставить его оповещать имя и/или идентификатор объекта, если он был нажат.
Вместо того, чтобы выпускать разные имена, все объекты отображали предупреждения «SketchUp» при нажатии.
Переименование с использованием "object.name="name"" тоже не работает. Мы надеемся, что вы смогли ответить на этот вопрос.