动画gltf three.js中的3d对象

动画gltf three.js中的3d对象,three.js,gltf,Three.js,Gltf,我有一个工作的GLTF对象,并试图在没有AnimationMixer的情况下应用动画,但最后我出现了一个错误:标识符“cube”已经声明。此外,如果我使用网格对象,一切都很好。发生了什么事?谢谢 let cubes, cube; let loader = new THREE.GLTFLoader(); loader.load( 'model/cubes.glb', function ( gltf ) { cubes = gltf.scene; }); cube = new

我有一个工作的GLTF对象,并试图在没有AnimationMixer的情况下应用动画,但最后我出现了一个错误:标识符“cube”已经声明。此外,如果我使用网格对象,一切都很好。发生了什么事?谢谢

let cubes, cube;

let loader = new THREE.GLTFLoader();
loader.load(
  'model/cubes.glb',

  function ( gltf ) {
  cubes = gltf.scene;
  });

cube = new three.Mesh(cubes);
scene.add(cube);
window.requestAnimFrame = (function(){
    return  window.requestAnimationFrame ||
        window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        function(callback) {
            window.setTimeout(callback, 1000 / 60);
        };
})();

var lastFrameTime = new Date().getTime() / 1000;
var totalGameTime = 0;
function update(dt, t) {

    setTimeout(function() {
        var currTime = new Date().getTime() / 1000;
        var dt = currTime - (lastFrameTime || currTime);
        totalGameTime += dt;

        update(dt, totalGameTime);

        lastFrameTime = currTime;
    }, 0);
}


function render() {
    renderer.render(scene, camera);

    cube.rotation.x += 0.01;
    cube.rotation.y += 0.01;
    requestAnimFrame(render);
}

render();
update(0, totalGameTime);

错误表明,您已经声明了变量
cube
两次(在同一范围内)。这里(首先):
让立方体,立方体这里(第二个):
让立方体=新的三个网格(立方体)移除
在这里:
cube=new three.Mesh(立方体)加载程序。加载
到零件,这取决于加载的模型。因为,
gltf
的加载是异步的,您将在一段时间后得到一个模型,但这部分:
render()立即执行。或者作为一个选项,您可以检查
cube
是否未定义
undefined
,然后旋转它:
if(cube)cube.rotation.x+=0.01
。这部分:
新的三点网格(立方体)看起来很奇怪。通常,它是大写的
new THREE
,就像您在这里使用的:
let loader=new THREE.GLTFLoader()我尝试将验证应用于旋转(如果(cube)cube.rotation.x+=0,1),但没有帮助。我找不到任何带有旋转(不带AnimationMixer)的动画GLTF对象的作业示例。如果我更改网格上的gltf对象,那么一切都正常。错误表明,您已声明变量
cube
两次(在同一范围内)。这里(首先):
让立方体,立方体这里(第二个):
让立方体=新的三个网格(立方体)移除
在这里:
cube=new three.Mesh(立方体)加载程序。加载
到零件,这取决于加载的模型。因为,
gltf
的加载是异步的,您将在一段时间后得到一个模型,但这部分:
render()立即执行。或者作为一个选项,您可以检查
cube
是否未定义
undefined
,然后旋转它:
if(cube)cube.rotation.x+=0.01
。这部分:
新的三点网格(立方体)看起来很奇怪。通常,它是大写的
new THREE
,就像您在这里使用的:
let loader=new THREE.GLTFLoader()我尝试将验证应用于旋转(如果(cube)cube.rotation.x+=0,1),但没有帮助。我找不到任何带有旋转(不带AnimationMixer)的动画GLTF对象的作业示例。如果我更改网格上的gltf对象,则一切都正常。