TypeError:THREE.GLTFLoader不是构造函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError:THREE.GLTFLoader不是构造函数相关的知识,希望对你有一定的参考价值。

我正在尝试在我的javascript文件中导入3D模型,这是'test.html'代码:

<!DOCTYPE html>
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>
        <script type="module" src="./three.js-master/examples/jsm/loaders/GLTFLoader.js"></script>
        <script src="./three.js-master/build/three.js"></script>
        <script src="./test.js"></script>
    </body>
</html>

这是'test.js'代码:

var camera, scene, renderer;

window.onload = function init() 

    scene = new THREE.Scene();
    camera = new THREE.PerspectiveCamera( 45, 1.8, 0.1, 20.0 ); // fovy, aspect, near, far
    renderer = new THREE.WebGLRenderer();

    renderer.setClearColor(0xffffff);
    renderer.setSize(1280, 720); //Size of the camera
    document.body.appendChild(renderer.domElement);

    var loader = new THREE.GLTFLoader();

    loader.load( 'duck/source/mindbreaker.glb', function ( gltf ) 

        scene.add( gltf.scene );

      , undefined, function ( error ) 

        console.error( error );

       );

    camera.position.x = 0.0;
    camera.position.y = 0.0;
    camera.position.z = 10.0;

    render();


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


我在FIREFOX上运行它,并尝试更改所有可能的路径。我还创建了一个本地主机来读取文件,但是出现相同的错误。

答案

这是因为您正在加载ES6版本的GLTFLoader,但使用的是预先构建的(ES5)three.js。从examples/js/loaders文件夹中加载GLTFLoader的ES5版本(并在three.js之后加载)。例如。

<script src="./three.js-master/build/three.js"></script>
<script src="./three.js-master/examples/js/loaders/GLTFLoader.js"></script>
<script src="./test.js"></script>

以上是关于TypeError:THREE.GLTFLoader不是构造函数的主要内容,如果未能解决你的问题,请参考以下文章

反应本机获取多标记[未处理的承诺拒绝:TypeError:TypeError:未定义不是对象(评估'this.state.markers.map

Django TypeError - TypeError: issubclass() arg 1 必须是一个类

pyspark:TypeError:'float'对象不可迭代

Python 3.8 TypeError: can't concat str to bytes - TypeError: a bytes-like object is required, not 's

TypeError: key 必须是一个字符串,一个缓冲区或一个对象在 typeError 与 GCP 文件存在

TypeError: jQueryxxxxxx 不是函数