Em vários momento do desenvolvimento, precisamos alterar a cor de um material, textura e até mesmo do nível de uma emissão de luz, e para isso, podemos fazer vários ajustes no próprio material, porém, se precisarmos fazer isso dinamicamente em tempo de execução, o processo fica um pouco mais complexo.
Alterar a cor de materiais por script, é algo bem simples e pode ser executado a qualquer momento. O exemplo mostrado aqui, permite que você selecione um cor no Inspector e aplique ao seu material.
Tudo o que você precisa inicialmente, é criar o material e associa-lo à algum Gameobject em cena, somente assim vamos ver as alterações.
Crie um script, insira o código exibido abaixo, em seguida, arraste seu script para o Gameobject que vai controlar a cor. No inspector, note que temos uma caixa de seleção de cor, nela, você deve selecionar a nova cor. Note também, que temos uma caixa chamada de material, arraste para esse campo o material que você criou anteriormente.
ChangeMaterialColor.cs
using UnityEngine;
public class ChangeMaterialColor : MonoBehaviour
{
public Color cor; //Armazena a cor que vamos usar
public Material material; //Acessa o material
void Start()
{
//Altera a cor do material para a nova selecionada
material.color = cor;
}
}
Se você fez tudo corretamente, seu material já estará com a nova cor selecionada.
Simples, não?
A gente se vê na próxima. ;D