我多个物体用的是同一个material,当我用gameObject.GetComponent<MeshRenderer>().sharedMaterial.SetColor("_Color",newColor)改变其中一个物体的颜色时,其余物体的颜色也跟着变了。
要想其余物体颜色不跟着变,应该用gameObject.GetComponent<MeshRenderer>().material.SetColor("_Color",newColor),这样会为此gameObject新创建一个material(即此gameObject不再使用公用material),代价是这个gameObject便不能与其余gameObject一起batch了。
时间: 2024-10-12 04:46:35