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

Gunnar CorreaGunnar Correa10/03/2021 às 19:23:32 - 224 acessos

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.


unity unity 3d progamação tutorial unity iniciantes unity cor unity unity material aprenda unity trocar cor via script cor via script array de cor como criar jogos aprenda a criar jogos

Compartilhe nas redes sociais



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. É CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.


Fórum

Ficou com alguma dúvida? utilize nosso fórum de perguntas e respostas, lá nossa comunidade poderá te ajudar.

https://forum.satellasoft.com