3.4.2自定义材质是有bug还是我用的有问题

  • Creator 版本:3.4.2

  • 目标平台:谷歌浏览器

nodeA、nodeB 使用同个material

nodeB修改material属性:this._material.setProperty(‘mainTexture’, this._texture);
nodeA 会被一起改动,是怎么回事?

这个是正常的。

共享材质由多个渲染器组件共同使用,修改共享材质会影响所有使用它的渲染器组件。默认情况下,同一材质在多个渲染器组件之间是共享的。
材质实例由单个渲染器组件单独使用,修改材质实例仅影响使用它的渲染器组件。材质默认为共享材质,当修改共享材质时,引擎会根据材质创建材质实例。


总结

默认是共享材质,如果你需要两个互相不影响,可以修改为材质实例。


补充

可以看一下 文档关于 共享材质和材质实例的说明
https://docs.cocos.com/creator/manual/zh/material-system/material-script.html#共享材质--材质实例

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