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.
Desafio
MédioEnvie cada guarda para o posto indicado pelo Inspector.
- Adicione o campo
public Transform post;. O espaço de Guard1 contém Post1; o de Guard2 está vazio. - Em
Update(), quandopost == null, usereturn;para que um guarda sem posto fique parado. - 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
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