我对 ThreeJS 不太熟练。
我正在尝试创建边界框来包裹 3D 模型。模型加载得很好,因为我可以在场景中看到它
const loader = new GLTFLoader();
loader.load(
modelsPath[ 0 ],
( gltf ) => {
mesh = gltf.scene;
mesh.visible = false;
mesh.matrixAutoUpdate = false;
scene.add( mesh );
box1 = new THREE.Box3().setFromObject( mesh.asset );
group.add( box1 );
},
null,
function ( error ) {
console.log( error );
}
);
但是当我使用
box1 = new THREE.Box3().setFromObject( mesh.asset );
时,我收到以下错误:
TypeError: Cannot read properties of undefined (reading 'updateWorldMatrix')
at Box3.expandByObject (Box3.js:160:1)
你有什么想法吗?
试试这个
const loader = new GLTFLoader();
let mesh;
let bb;
loader.load("REACT.glb", (gltf) => {
mesh = gltf.scene;
scene.add(mesh);
bb = new THREE.Box3().setFromObject(mesh);
const boxHelper = new THREE.Box3Helper(bb, 0x00ff00);
scene.add(boxHelper);
});
https://thirdjs.org/docs/#api/en/helpers/BoxHelper
顺便说一句,当您将可见性属性设置为
false
中的网格时,如何才能看到网格?哦哦
mesh.visible = false;