Menu
CoddyTech

Referências no Inspector

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

Um campo pode armazenar outro objeto. Dê a ele um tipo como Transform ou GameObject, e o Inspector exibirá um espaço vazio que você preenche arrastando um objeto da Hierarchy até ele. Este script de câmera acompanha o objeto que foi arrastado para player, mantendo-se 3 unidades acima dele e 6 atrás:

public Transform player;

void Update()
{
    transform.position = player.position + new Vector3(0, 3, -6);
}

Um espaço deixado vazio exibe None, e a primeira linha que o usa gera, em cada quadro: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. A linha seguinte da mensagem diz o que fazer: You probably need to assign the player variable of the CameraFollow script in the inspector. Ela identifica o campo e o script, para que você saiba qual espaço preencher.

Alguns scripts também devem funcionar com o espaço vazio. Unity faz com que um espaço vazio seja igual a null na comparação, então esse tipo de script verifica antes de usá-lo. Com if (player != null) em volta da linha em Update(), uma câmera sem jogador permanece onde está, em vez de gerar um erro.

challenge icon

Desafio

Médio

Cada guarda caminha até seu próprio posto. Na cena, o Inspector do Guard1 coloca o objeto Post1 em um campo chamado post. O posto do Guard2 ainda não foi criado, então seu espaço post está vazio.

  • Adicione ao script Guard um campo Transform chamado post.
  • Um guarda caminha até a posição do seu posto a speed unidades por segundo e para nele, mesmo que o posto seja movido depois.
  • Um guarda cujo espaço do posto está vazio fica onde está, sem gerar um erro.

Pressione Play, selecione cada guarda na Hierarchy para ver seu espaço Post e, em seguida, clique em Check.

Experimente você mesmo

using UnityEngine;

public class Guard : MonoBehaviour
{
    // post: o Transform até o qual este guarda caminha, definido no Inspector
    public float speed = 2f;

    void Update()
    {
        // Caminha até o post na velocidade speed. Um guarda com o campo post vazio permanece parado.
    }
}
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