Menu
CoddyTech

Obter um Componente

Parte da seção Noções básicas de scripting no Unity do Journey de Unity da Coddy. Lição 30 de 67.

Um GameObject é um contêiner de componentes: um Transform, um MeshRenderer que o desenha, um collider, seus scripts. GetComponent<Renderer>() retorna o componente desse tipo no mesmo objeto e, por meio dele, seu script altera o que esse componente faz. transform é um atalho pronto para o Transform; todos os outros componentes você busca por conta própria.

Este cubo fica vermelho quando a tecla Espaço é pressionada. Ele busca seu Renderer uma vez, em Start(), e o mantém em um campo: GetComponent pesquisa os componentes do objeto cada vez que é chamado, e o resultado não muda.

Renderer rend;

void Start()
{
    rend = GetComponent<Renderer>();
}

void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        rend.material.color = Color.red;
    }
}

rend.material fornece a este objeto sua própria cópia do material na primeira vez que você o usa, então os outros objetos que compartilhavam o material mantêm sua cor. Unity nomeia algumas cores para você, como Color.red, Color.green, Color.blue, Color.yellow e Color.gray; new Color(r, g, b) cria qualquer outra, com cada componente de 0 a 1.

challenge icon

Desafio

Médio

A luz de sinalização começa vermelha. Cada clique avança para a próxima cor, nesta ordem: vermelho, amarelo, verde, depois vermelho novamente, e assim por diante.

Obtenha o Renderer uma vez, em Start(), e mantenha-o em um campo. Use Color.red, Color.yellow e Color.green.

Pressione Play, clique algumas vezes no jogo e, em seguida, Check.

Experimente você mesmo

using UnityEngine;

public class SignalLight : MonoBehaviour
{

    void Start()
    {
    }

    void Update()
    {
        // A cada clique: vermelho, depois amarelo, depois verde e então vermelho novamente
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Noções básicas de scripting no Unity