Obter um componente
Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 44 de 85.
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 sempre 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 dá a este objeto sua própria cópia do material na primeira vez que você o usa, então outros objetos que compartilhavam o material mantêm a cor deles. A 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 parte variando de 0 a 1.
Desafio
MédioCada clique acende a luz do sinal na sequência: vermelho, amarelo, verde e, depois, vermelho novamente.
- Adicione um campo
Renderer rend;e defina seu valor emStart()comGetComponent<Renderer>(). - Em
Input.GetMouseButtonDown(0), some 1 a um campoint stepe redefina-o para 0 quando chegar a 3. - Defina
rend.material.colorcomoColor.red,Color.yellowouColor.greenpara os valores de step 0, 1 ou 2.
Pressione “Jogar” e clique no jogo: a luz muda de cor. Em seguida, pressione “Verificar”.
Experimente você mesmo
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// A cada clique: vermelho, depois amarelo, depois verde e, por fim, vermelho novamente
}
}
Todas as lições de Fundamentos de Scripting no Unity
1Fundamentos de C# no Unity
Olá, UnityVariáveisDecimais precisam de um fTexto no ConsoleVariáveis que guardam valoresIf e ElseComparar númerosRevisão: Coletor de Moedas7Laços e Métodos
Repita com forLaços dentro de laçosEscreva um métodoMétodos que respondemArraysRevisão: Escada10Encontrando coisas
Buscar pelo nomeTagsBuscar por tipoReferências são melhores que FindO null do UnityRevisão: moeda mais próxima13Projeto: Desvie dos Blocos
O CorredorBlocos do Céu2Faça-o se mover
Posicione o cuboMova a cada quadroGire a cada segundoDirija com as teclasRecapitulando: dirija o cubo5Vetores
Somando vetoresDireçõesEspaço local e globalVelocidade diagonalDistância entre objetosVector3 é uma structRevisão: piloto de drone8GameObjects e Componentes
Referências no InspectorObter um componenteComponentes ausentesAdicionar um componenteRequireComponentMostrar e ocultarRevisão: Interruptor de luz6Transformações e hierarquia
Pais e filhosIçar a bandeiraEscalaOlhar para as coisasMover-se em direção a um pontoRevisão: Lua em órbita9Projeto: Pegue a Estrela
O PegadorUma Estrela CadentePratique por conta própria: Playground de Unity