Javascript 如何使用Three.js保存贴花位置?

Javascript 如何使用Three.js保存贴花位置?,javascript,three.js,Javascript,Three.js,我正在寻找一种存储和重新加载示例()中生成的贴花的方法,这样当用户“绘制”一个新的飞溅物时——他可以保存它,然后再重新加载它。 我尝试了很多方法,但不幸的是,它们似乎都不起作用 我的方法是保存位置、旋转和缩放,然后像这样构建它们: function loadLeePerrySmith(callback) { var loader = new THREE.JSONLoader(); loader.load('assets/LeePerrySmith.js', f

我正在寻找一种存储和重新加载示例()中生成的贴花的方法,这样当用户“绘制”一个新的飞溅物时——他可以保存它,然后再重新加载它。
我尝试了很多方法,但不幸的是,它们似乎都不起作用

我的方法是保存位置、旋转和缩放,然后像这样构建它们:

function loadLeePerrySmith(callback) {

        var loader = new THREE.JSONLoader();

        loader.load('assets/LeePerrySmith.js', function (geometry) {

            geometry.verticesNeedUpdate = true;
            geometry.elementsNeedUpdate = true;
            geometry.morphTargetsNeedUpdate = true;
            geometry.uvsNeedUpdate = true;
            geometry.normalsNeedUpdate = true;
            geometry.colorsNeedUpdate = true;
            geometry.tangentsNeedUpdate = true;

            var material = new THREE.MeshPhongMaterial({
                map: THREE.ImageUtils.loadTexture('assets/Map-COL.jpg'),
                specularMap: THREE.ImageUtils.loadTexture('assets/Map-SPEC.jpg'),
                normalMap: THREE.ImageUtils.loadTexture('assets/Map-NOR.jpg'),
                shininess: 10
            });

            mesh = new THREE.Mesh(geometry, material);

            // ALL FOLLOWING VECTORS SHOULD COME FROM D.B
            var pos = new THREE.Vector3(0.18564199509178245, 23.11243036463454, 21.79273328636014);
            var rot = new THREE.Vector3(-0.24357513937426453, -0.07708039421506024, 4.358263365975027);

            var some = new THREE.Vector3(20.694949486021706, 20.694949486021706, 20.694949486021706);
            var check = new THREE.Vector3(1, 1, 1);
            var m = new THREE.Mesh(new THREE.DecalGeometry(mesh, pos, rot, some, check), decalMaterial);
            scene.add(mesh);
            
            decals.push(m);
            scene.add(m);

            mesh.scale.set(10, 10, 10);


        });

    }

添加一个简单的超时就成功了

setTimeout(function(){
                    
        let m = new THREE.Mesh(new DecalGeometry(mesh, pos, rot, 
        size), decalMateria2);
        decals.push(m);
        scene.add(m);
            
},100)

“我尝试了很多方法,但不幸的是,它们似乎都不起作用。”这无助于我们了解问题所在。请详细说明并解释您遇到的实际问题。