我多个物体用的是同一个material,当我用gameObject.GetComponent<MeshRenderer>().sharedMaterial.SetColor("_Color",newColor)改变其中一个物体的颜色时,其余物体的颜色也跟着变了。
要想其余物体颜色不跟着变,应该用gameObject.GetComponent<MeshRenderer>().material.SetColor("_Color",newColor),这样会为此gameObject新创建一个material(即此gameObject不再使用公用material),代价是这个gameObject便不能与其余gameObject一起batch了。
本文探讨了在Unity中如何为使用相同材质的不同物体设置独立颜色。通过使用GameObject.GetComponent<MeshRenderer>().material.SetColor方法,可以避免颜色同步更改的问题,但这也意味着该物体将不再与其他物体进行批处理。
2万+

被折叠的 条评论
为什么被折叠?



