unity, GetComponent<MeshRenderer>().sharedMaterial 与 GetComponent<MeshRenderer>().material

我多个物体用的是同一个material,当我用gameObject.GetComponent<MeshRenderer>().sharedMaterial.SetColor("_Color",newColor)改变其中一个物体的颜色时,其余物体的颜色也跟着变了。

要想其余物体颜色不跟着变,应该用gameObject.GetComponent<MeshRenderer>().material.SetColor("_Color",newColor),这样会为此gameObject新创建一个material(即此gameObject不再使用公用material),代价是这个gameObject便不能与其余gameObject一起batch了。

原文地址:https://www.cnblogs.com/wantnon/p/4926286.html