Menu
CoddyTech

Referências no Inspector

Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 43 de 85.

Um campo pode conter outro objeto. Dê a ele um tipo como Transform ou GameObject, e o Inspector exibirá um espaço vazio que você preencherá arrastando um objeto da Hierarchy até ele. Este script da câmera acompanha qualquer objeto que tenha sido 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 lança, a 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, então você sabe 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 em uma comparação, então um script desse tipo verifica antes de usá-lo. Com if (player != null) envolvendo a linha em Update(), uma câmera sem jogador permanece onde está em vez de lançar uma exceção.

challenge icon

Desafio

Médio

Envie cada guarda para o posto indicado pelo Inspector.

  1. Adicione o campo public Transform post;. O espaço de Guard1 contém Post1; o de Guard2 está vazio.
  2. Em Update(), quando post == null, use return; para que um guarda sem posto fique parado.
  3. Então, mova-o com Vector3.MoveTowards(transform.position, post.position, speed * Time.deltaTime).

Pressione “Jogar”: Guard1 caminha até seu posto e Guard2 espera. Em seguida, pressione “Verificar”.

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

Todas as lições de Fundamentos de Scripting no Unity

Pratique por conta própria: Playground de Unity