Three.js鼠标拣选,3D模型与OBJMTLLoader

时间:2015-09-02 12:39:35

标签: three.js

我开始使用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);

});

0 个答案:

没有答案