刚刚做个工具想批量获取Material,然后把它的颜色显示出来,可是遇到发现有些Material没有颜色可以供我设置。当我获取时会报错:
Renderer renderer = GetComponent<Renderer>();
Material mat = renderer.sharedMaterial;
Debug.Log(mat.color); //报错
那怎么跳过颜色的判断?非空判断?mat.color == null?显然不行,因为mat.color都报错了,不用想mat.color == null这样的语法了,那我们来看一下报错的信息:
Material doesn't have a color property '_Color'
查了相关的API,终于找到一个方法来判断了:
mat.HasProperty("_Color");
用这个方法就可以判断Color是否为空,解决报错的
问题
了
![](http://www.unitymanual.com/static/image/smiley/comcom/4.gif)
Ricky Yang个人原创,版权所有,转载注明,谢谢。