Three.js FBXLoader2,改变单个Mesh的颜色(在Group或detached中)

时间:2017-05-19 11:07:27

标签: three.js

我有一个通过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 );
}

当我尝试更改位置或缩放网格时,它可以正常工作。 以前有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

只需克隆材料并将其替换为原始材料。

scene.children[0].material = scene.children[0].material.clone();
scene.children[0].material.emissive.setHex( 0xff0000 );