creator 2.x 如何动态修改3d模型的材质贴图


image

如何动态修改材质中的贴图?

material.effect.setProperty(“USE_DIFFUSE_TEXTURE”, spriteFrame)
这样修改的问题是 全部使用这个材质的模型都会改变贴图 无法单独修改某一实例

可以动态修改材质。 我这是3d 1.2.0 的代码。2.x 不知道 能否用
emojiMeshRenderer:MeshRenderer
smileyMaterials:Material
this.emojiMeshRenderer.setMaterial(this.cryMaterials,0);

搞定啦。这里记录下给需要的人看看。

前提:
美术导出的小兵模型中,提供了一个fbx文件和两张图片(红色和蓝色皮肤),只绑定了一个蓝色皮肤材质贴图。如二楼所说,如果直接设置材质球中的参数,会导致所有使用此材质的小兵都变色。

解决办法:
制作一个新的材质球,并动态修改材质就行

流程是这样的(引擎版本:2.4.x):
1.新建一个材质球
image
2.配置材质球参数


3.获取模型中的skinnedMeshRender组件,并设置材质球
image
代码如下(三楼的方法):
node.getComponent(cc.MeshRenderer).setMaterial(0, material)

最终效果:
image

该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。