如何在第二个位置更改 material?

How to change material on second position?

我想在位置 2 上更改 material,当我在我的代码中更改 material 时,它在位置 0 而不是位置 1 上更改。

我不知道如何在位置 1 上更改 material ..这是在位置 [0]

上更改 material 的代码
 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];  
}

我想在这张图片上更改 material 名称为新 Material 2 到我在代码中定义的material。

非常感谢社区:)

它在索引 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 只是为了提高效率