Javascript Three.js |如何使用对象';s儿童';s属性位于loader.load之外
我需要使用dat.GUI()动态更新对象的颜色属性。 如果使用three.js geometry创建对象很简单,但是当我处理导入的对象(.obj&.mtl)时,我需要在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
这个怎么样
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;
}
} );
});