我有一个通过FBXLoader2加载的.fbx模型。 当我将模型(包括3个网格)添加到场景中时,它将作为组添加。现在我尝试更改组中单个网格的颜色,但所有3个网格都获得了颜色。然后我认为他们可能因为集团而“联系”。所以我分离了它们(SceneUtils.detach)。 现在我在场景中拥有所有网格物体。不过,当我改变单个网格的颜色时,它们中的所有三个都会获得颜色。当我在console.log网格(在组中或分离)时,它向我显示正确的网格。
var loader = new THREE.FBXLoader( manager );
loader.load( 'somemodel.fbx', function( object ) {
model = object;
var modelLength = model.children.length;
for (i=0;i<modelLength;i++) {
THREE.SceneUtils.detach(model.children[0], model, scene);
}
scene.children[0].material.emissive.setHex( 0xff0000 );
}
当我尝试更改位置或缩放网格时,它可以正常工作。 以前有人遇到过这个问题吗?
答案 0 :(得分:0)
只需克隆材料并将其替换为原始材料。
scene.children[0].material = scene.children[0].material.clone();
scene.children[0].material.emissive.setHex( 0xff0000 );