模型居中

object.updateWorldMatrix不是函数

我的目标是将加载的GLTF对象放在屏幕中央。这是我正在使用的代码:



this.gltfLoader.load("/corolla.gltf", (object) => {
            const box = new THREE.Box3().setFromObject(object);
            const size = box.getSize(new THREE.Vector3()).length();
            const center = box.getCenter(new THREE.Vector3());

            // reset OrbitControl
            this.controls.reset();

            object.position.x += (object.position.x - center.x);
            object.position.y += (object.position.y - center.y);
            object.position.z += (object.position.z - center.z);

            this.controls.maxDistance = size * 10;

            this.camera.near = size / 100;
            this.camera.far = size * 100;
            this.camera.updateProjectionMatrix();

            this.camera.position.copy(center);
            this.camera.position.x += size / 2.0;
            this.camera.position.y += size / 5.0;
            this.camera.position.z += size / 2.0;
            this.camera.lookAt(center);

            this.gltf = object.scene;
            this.scene.add(this.gltf);
        },
            this.manageLoading,
            this.gltfLoadErr);

为了记录,我使用的是Three.js的最新版本,它是0.110.0;

posted @ 2023-02-02 11:01  过好每一天2022  阅读(22)  评论(0)    收藏  举报