我想在位置2上更改材质,当我在代码中更改材质时,它在位置0而不是位置1上更改。
我不知道如何在位置1上改变材质。.这是在位置[0]上改变材质的代码
public Material[] materials;
public Renderer rend;
// Start is called before the first frame update
void Start()
{
rend= GetComponent<Renderer>();
}
// Update is called once per frame
void Update()
{
rend.material = materials[1];
}
我想更改这张图片上名称为New Material 2的材质 到我在代码中定义的材料。
非常感谢您的社区:)
答案 0 :(得分:1)
它在索引0而不是索引1上更改,因为您使用的是rend.material而不是rend.materials
public class MaterialChanger : MonoBehaviour {
public Material[] Materials;
public MeshRenderer MeshRenderer;
void Start() {
MeshRenderer = gameObject.GetComponent<MeshRenderer>();
}
void Update() {
int requredMaterialIndex = 1; //this is just test value
MeshRenderer.materials[1] = Materials[requredMaterialIndex];
}
而且我建议您总是为了提高效率而始终使用Meshrenderer而不是Renderer