我开始使用Three.js进行编程。现在我有一个问题,当我用OBJMTLLoader加载一个对象时我没有任何访问权限用mouseMove更改对象的位置。我已将obects推入对象数组但它不起作用。如果有人可以帮助或知道一个好的教程将是非常好的。我希望我写这个问题的结构很清楚....这是我第一次使用stacko。
这些是我的变量和我尝试更改对象的函数:
var mouse = new THREE.Vector2();
var raycaster = new THREE.Raycaster();
var objects = [];
function onDocumentMouseMove( event ) {
event.preventDefault();
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
raycaster.setFromCamera(mouse,camera);
intersects = raycaster.intersectObjects(objects);
if (intersects.length> 0) {
intersects[0].object.position.set(5, 5 ,5);
}
}
这里我用OBJMTLLoader加载对象....这有效:)
var loader = new THREE.OBJMTLLoader();
loader.load('models/sofa4.obj', 'models/sofa4.mtl', function(object) {
// console.log(object);
object.traverse(function(child) {
if (child instanceof THREE.Mesh) {
child.material.shininess = 0;
// console.log(child.material);
}
});
object.position.z = 2;
object.position.y = -5.95;
object.scale.set(0.05,0.05,0.05);
scene.add(object);
objects.push(object);
});