Adicionar um componente
Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 46 de 85.
gameObject.AddComponent<T>() adiciona um novo componente do tipo T ao objeto enquanto o jogo está em execução e o retorna para que você possa configurá-lo nas linhas seguintes. Ele pertence ao GameObject, ao qual um script tem acesso por meio de gameObject. Esta fogueira ganha uma luz laranja e quente quando o jogo começa:
void Start()
{
Light glow = gameObject.AddComponent<Light>();
glow.color = new Color(1f, 0.5f, 0f);
glow.intensity = 2f;
}Um componente adicionado dessa forma permanece enquanto o jogo está em execução. Pare de “Jogar” e o objeto volta ao estado salvo na cena, sem Light. Seus próprios scripts também são componentes: gameObject.AddComponent<Spinner>() adiciona um Spinner que começa a ser executado como qualquer outro script.
A maioria dos componentes pode ser adicionada mais de uma vez, mas alguns não: um objeto pode ter no máximo um Rigidbody, e tentar adicionar um segundo gera um aviso no Console: Can't add component 'Rigidbody'. Um código que pode ser executado mais de uma vez verifica se o objeto já tem o componente antes de adicioná-lo.
Desafio
MédioA barra de espaço sacode a palmeira, e o coco cai.
- Em
Update(), ao pressionarInput.GetKeyDown(KeyCode.Space), adicione um Rigidbody comgameObject.AddComponent<Rigidbody>(). - Adicione-o somente quando o coco ainda não tiver um:
!TryGetComponent(out Rigidbody rb). Uma segunda pressionada da barra de espaço não adiciona um segundo Rigidbody.
Pressione “Jogar” e pressione a barra de espaço: o coco cai na areia. Em seguida, clique em “Verificar”.
Experimente você mesmo
using UnityEngine;
public class CoconutDrop : MonoBehaviour
{
void Update()
{
// Space: adicione um Rigidbody se o coco ainda não tiver um
}
}
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