Как поменять материал на вторую позицию? - PullRequest
1 голос
/ 06 июля 2019

Я хочу изменить материал в позиции 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];  
}

Я хочу изменить материал на этой фотографии с именем Новый Материал 2 К материалу, который я определяю в коде.

enter image description here

Большое спасибо сообществу:)

1 Ответ

1 голос
/ 07 июля 2019

Изменяется в индексе 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 только для эффективности

...