2016-10-13 8 views
0

OBJで動的に更新しました。 "TypeError:child.material.color is undefined"にエラーがあります。なぜこのエラーが発生したのですか私のコードで間違いがありましたか?three.jsでOBJエラーの色が更新されましたか?

var loader = new THREE.OBJLoader(manager); 
loader.load(file, function (object) { 
    object.traverse(function (child) { 
    if (child instanceof THREE.Mesh) { 
    // child.material.ambient.setHex(0xFF0000); 

    if(object_color!=""){ 

     //alert("object color entere"); 

     object_color=object_color.replace('#', '') 
     child.material.color.setHex("0x"+object_color); 
    } 
    } 
    });  
+0

.objファイル用の.mtl(マテリアル)ファイルはありますか? –

+0

はい材料ファイルがあります –

+0

しかし、色を動的に変更することが可能です –

答えて

0

、問題は、OBJを持っています。私は有効なobjをチェックしました。

0
child.material.color 

これはジオメトリの拡散色です。 Objファイルの場合、この色は対応する.mtlファイル内のマテリアルに対して定義されます。その.mtlファイルがない場合、またはジオメトリが使用する素材に.mtlファイルで定義された拡散色がない場合は、直面している問題が発生する可能性があります。

次のコードを使用してこの問題を解決することができます - 上記のコードは、問題のコードが正しく動作しない

if(child.material.color) 
    child.material.color.setHex("0x"+object_color); 
else 
    child.material.color = new THREE.Color("0x"+object_color); 
+0

私は上記のコードをテストしました。部分的に入力しますが、色はまだ適用されていません。 –

+0

'' 0x "+ object_color'文字列から16進値に変換する必要があります。 –

+0

私は問題がないコードをチェックしている、Objに問題がある –

関連する問題