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

Acessando o componente Renderes podemos alterar a cor do material facilmente.

Hoje você confere mais uma daquelas dicas rápidas mas que salva a vida de qualquer dev, vamos ver aqui como mudar a cor de um material através de um simples script na Unity 3D.

Para o nosso exemplo, vamos pegar o material do GameObject atual e através de uma lista de cores, sortear uma nova cor e aplicar ao material.

Confira a nossa videoaula abaixo ensinando a realizar alterar a cor do material via script.


Código fonte

Todo o código utilizado durante a aula está disponível abaixo.

using UnityEngine;

public class TrocaDeCor : MonoBehaviour
{
    //Declaramos o array de cores que será definido pelo usuário
    public Color[] cores;

    void Start()
    {
        //Verificamos se não existe nenhuma cor na lista
        if (cores.Length == 0)
        {
            //Avisamos o usuário que precisa incluir cor na lista 
            Debug.LogWarning("Crie uma ou mais cores na lista.");

            //Encerramos o método
            return;
        }

        //Sorteamos uma cor da lista e atribuimos a variável c, que é do tipor Color
        Color c = cores[Random.Range(0, cores.Length - 1)];

        //Obtemos o componente Render, accessamos a propriedade color e definimos a nova cor
        GetComponent<Renderer>().material.color = c;
    }
}

Para alterar a cor de emissão de um material, por exemplo, podemos utilizar o código abaixo.

GetComponent<Renderer>().material.SetColor("_EmissionColor", Color.blue);

Espero que tenha gostado e a gente se vê na próxima.

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