在导入的模型中按名称定位特定材料

ALx*_*ALx 5 three.js

我试图在 Three.js 中的导入模型(通过 Collada 加载器)中选择特定材质。我知道这可以用该getChildByName方法来完成,但它对我不起作用。我也找不到包含此方法的任何工作示例。

我在这里做错了什么?

loader = new THREE.ColladaLoader();
loader.load('myModel.dae', function ( collada ) {
    model = collada.scene;

    var myMaterial = model.getChildByName( 'materialName', true );
    myMaterial.material = new THREE.MeshBasicMaterial( { wireframe: true } );
});
Run Code Online (Sandbox Code Playgroud)

mrd*_*oob 5

我想这就是你所追求的。

collada.scene.traverse( function ( child ) {

    if ( child.material && child.material.name === 'materialName' ) {

        child.material = new THREE.MeshBasicMaterial( { wireframe: true } );

    }

} );
Run Code Online (Sandbox Code Playgroud)