Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js |如何使用对象';s儿童';s属性位于loader.load之外_Javascript_Three.js - Fatal编程技术网

Javascript Three.js |如何使用对象';s儿童';s属性位于loader.load之外

Javascript Three.js |如何使用对象';s儿童';s属性位于loader.load之外,javascript,three.js,Javascript,Three.js,我需要使用dat.GUI()动态更新对象的颜色属性。 如果使用three.js geometry创建对象很简单,但是当我处理导入的对象(.obj&.mtl)时,我需要在loader.load函数之外更新属性。 我怎样才能做到呢 编辑: 这个怎么样 objColor.onChange(function(value) // onFinishChange { companion.traverse( function( child ) { if ( child instanc

我需要使用dat.GUI()动态更新对象的颜色属性。 如果使用three.js geometry创建对象很简单,但是当我处理导入的对象(.obj&.mtl)时,我需要在loader.load函数之外更新属性。 我怎样才能做到呢

编辑:


这个怎么样

objColor.onChange(function(value) // onFinishChange
{
    companion.traverse( function( child ) { 
        if ( child instanceof THREE.Mesh ) { 
            child.material.color.setHex(value.replace("#", "0x"));
            child.material.needsUpdate = true;
        } 
    } );   
});

最好显示您已经尝试过的代码。@prisoner849我已经添加了代码。谢谢,它成功了。我不确定companion.traverse是否会在loader.load之外工作。如果它解决了您的问题,您可以通过单击灰色勾选按钮选择它作为正确答案。仅更新颜色时,不要设置
材质。需要更新日期
。另外,只调用一次
value.replace()
,而不是针对每个网格实例。
function updateColor(obj)
{
    obj.material.color.setHex( parameters.color.replace("#", "0x") ); //I need to use the property here.
}
objColor.onChange(function(value) // onFinishChange
{
    companion.traverse( function( child ) { 
        if ( child instanceof THREE.Mesh ) { 
            child.material.color.setHex(value.replace("#", "0x"));
            child.material.needsUpdate = true;
        } 
    } );   
});