Unity3D游戏对象颜色变化?

Unity3D游戏对象颜色变化?,unity3d,Unity3d,我在一个游戏对象上有两种材质,我想改变这两种材质的颜色。用c#脚本 但是这个脚本只改变了1。一个,我想换一个 问候 rayHit.collider.gameObject.GetComponent<MeshRenderer>().material.color = Color.black; rayHit.collider.gameObject.GetComponent().material.color=color.black; 如果使用GetComponent().material,则

我在一个游戏对象上有两种材质,我想改变这两种材质的颜色。用c#脚本

但是这个脚本只改变了1。一个,我想换一个

问候

rayHit.collider.gameObject.GetComponent<MeshRenderer>().material.color = Color.black;

rayHit.collider.gameObject.GetComponent().material.color=color.black;

如果使用
GetComponent().material
,则更改第一种材质。 您需要使用
GetComponent().materials
来获取数组中
MeshRenderer
的所有材质

因此,如果要修改第二种材质,需要修改材质数组的索引1,如下所示:


rayHit.collider.gameObject.GetComponent().materials[1].color=color.black

rayHit.collider.gameObject.GetComponents().material.color=color.black;不起作用,因为如果我使用GetComponents,它无法找到材质网格碰撞器是不可见的,因此没有颜色。看起来你想改变材质的颜色,但你不说物体是如何组织的;每个游戏对象只能有一个meshrenderer。我有一个包含两种材质的树,我不知道是否允许,但这里有一张图片//我想用脚本更改树皮颜色查看Unity提供的API参考。请注意组件的
材质
属性。这就是开始。