Menu
CoddyTech

Adicionar um Componente

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

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 se ilumina com uma luz laranja e acolhedora 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 o modo Play e o objeto voltará ao que foi 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 pedir um segundo gera um erro no Console. O código que pode ser executado mais de uma vez verifica se o objeto já tem o componente antes de adicioná-lo.

challenge icon

Desafio

Médio

O coco fica pendurado na palmeira. Pressionar Space sacode a árvore: o coco recebe um Rigidbody, então a gravidade o puxa e ele cai na areia.

  • Antes de pressionar Space pela primeira vez, o coco fica pendurado onde está.
  • Space adiciona um Rigidbody somente quando o coco ainda não tem um, então os pressionamentos seguintes não fazem nada.

Pressione Play, pressione Space e, em seguida, Check.

Experimente você mesmo

using UnityEngine;

public class CoconutDrop : MonoBehaviour
{
    void Update()
    {
        // Space: adicione um Rigidbody se o coco ainda não tiver um
    }
}
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