在Three.js中加载的对象-错误的位置

时间:2019-03-31 14:21:34

标签: javascript three.js virtual-reality

我正在制作一个虚拟导览编辑器,我需要在某些坐标上放置一些地图图钉。在开发后端逻辑时,我仅将球体用作“ placeholrders”。现在,当一切正常时,我想用实际的销钉对象替换球体。问题是,当我加载销钉对象并为这些球体设置相同的坐标时,销钉位于不同的位置。

我尝试将这些坐标放置到根对象,网格对象上,结果始终相同。还尝试将坐标登录到控制台,这是正确的。

     ADD_HOTSPOT_TO_SCENE: function(context, hotspot) {

        // SPHERE CODE
        let geometry = new THREE.SphereBufferGeometry( 1, 60, 40 );
        let mat = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
        let cube = new THREE.Mesh( geometry, mat );

        // set position of hotspot
        cube.position.set(hotspot.x, hotspot.y, hotspot.z);

        // set unique object name to pair with hotspot object
        cube.name = hotspot.getUniqueID();

        cube.scale.x = hotspot.scale / 10;
        cube.scale.y = hotspot.scale / 10;
        cube.scale.z = hotspot.scale / 10;

        // add object to scene as draggable object
        context.commit('ADD_DRAGGABLE_OBJECT_TO_SCENE', cube);

        // OBJECT CODE
        let material = new THREE.MeshBasicMaterial({
            map: new THREE.TextureLoader().load(Tour.mapPinTexture)
        });

        context.state.loader.load(Tour.mapPinObj, function(object){
            object.position.set(hotspot.x, hotspot.y, hotspot.z);
            object.name = hotspot.getUniqueID();
            object.traverse( function ( node ) {
                if ( node.isMesh ) {
                    node.material = material;
                }

            } );
            var box = new THREE.BoxHelper( object, 0xffff00 );
            context.commit('ADD_DRAGGABLE_OBJECT_TO_SCENE', object);
            context.commit('ADD_TO_SCENE', box);
        });
    }

我需要将对象放置在与球体相同的位置。当前输出如下:https://i.imgur.com/H0tfNIx.jpg ..我会错过吗?

0 个答案:

没有答案