我有一个立方体,我想改变代码的颜色。我试图使用setProperty()方法。当我将以下代码放在更新循环中并将其附加到我已经变成蓝色的立方体时它保持蓝色,但控制台说它是黑色(0)。当我删除setProperty()行时,我从编辑器中获取颜色值。
this.getEntity().setProperty("diffuseColor",0);
console.log(this.getEntity().getProperty('diffuseColor'));
答案 0 :(得分:1)
该代码应该可以正常工作(它似乎对我有用)。 diffuseColor
是材料的属性,但请确保您在MaterialAsset上设置此属性而不是网格。
如果您只想更改其中一个网格上的材质颜色,则需要为其创建新材质(或克隆现有材质)。
希望有所帮助。
答案 1 :(得分:1)
我是如何完成它的是使用资产注册表引用材料,然后在引用它的变量上调用setProperty方法,如下所示:
var material = this.getAssetRegistry().getAssetByName("NameOfMaterialInEditor");
material.setProperty("diffuseColor", 0x000000);
您还可以使用属性系统通过在代码编辑器中创建它来引用材质,然后在Studio中的组件上设置它,然后可以使用
以编程方式引用您命名的属性。this.nameOfAttribute.setProperty("diffuseColor", 0x000000);