Alterando a cor de material na Unity via script

Com poucas linhas de código podemos alterar facilmente a cor e efeito de qualquer material.

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.

Alterando a cor de material via script na Unity 3D
Alterando a cor de material via script na Unity 3D

Simples, não?

A gente se vê na próxima. ;D

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Deixe um comentário