shader用代码修改属性的时候如何不影响其他共用shader的属性

image
目前的需求是需要将数个shdaer通过代码更改属性,达到不同的显示效果,但是现在用代码修改一个,其他全部都会发生变化,怎么解决呢?

获取材质的时候使用这个方式
把 sprite.customMaterial 改成 sprite.getMaterialInstance(0);