Unity中Material修改shader后避免修改Mat文件

在Unity中经常会出现动态修改Material的shader属性后Mat文件随之改变,每次提交svn或git后总要先重置一下,方法可为在Start方法中新增一个Material,然后修改这个Material。

1
2
3
4
5
6
7
8
#if UNITY_EDITOR
Material cachedMat;
if(!_cache.TryGetValue(image.material,out cachedMat))
{
cachedMat = new Material(image.material);
_cache.Add(image.material,cachedMat);
}
material =cachedMat;

具体详情可以参照网站一

以及网站二