Referencias en el Inspector
Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 43 de 85.
Un campo puede contener otro objeto. Asígnale un tipo como Transform o GameObject, y el Inspector mostrará un espacio vacío que puedes rellenar arrastrando un objeto desde la Hierarchy hasta él. Este script de cámara sigue al objeto que se arrastró a player, manteniéndose 3 unidades por encima y 6 por detrás:
public Transform player;
void Update()
{
transform.position = player.position + new Vector3(0, 3, -6);
}Un espacio vacío muestra None, y la primera línea que lo usa genera, en cada fotograma: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. La siguiente línea del mensaje indica qué hacer: You probably need to assign the player variable of the CameraFollow script in the inspector. Nombra el campo y el script, así que sabes qué espacio rellenar.
Algunos scripts también deberían funcionar con el espacio vacío. Unity hace que un espacio vacío sea igual a null al compararlo, así que un script de este tipo lo comprueba antes de usarlo. Si rodeas la línea de Update() con if (player != null), una cámara sin jugador se queda donde está en lugar de generar un error.
Desafío
IntermedioEnvía a cada guardia al puesto que indica su Inspector.
- Añade el campo
public Transform post;. El espacio de Guard1 contiene Post1; el de Guard2 está vacío. - En
Update(), cuandopost == null, usareturn;para que un guardia sin puesto se quede quieto. - Después, muévete con
Vector3.MoveTowards(transform.position, post.position, speed * Time.deltaTime).
Pulsa «Jugar»: Guard1 camina hasta su puesto y Guard2 espera. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class Guard : MonoBehaviour
{
// post: el Transform hacia el que camina este guardia, asignado en el Inspector
public float speed = 2f;
void Update()
{
// Camina hacia post a la velocidad speed. Un guardia con el espacio de post vacío se queda quieto.
}
}
Todas las lecciones de Fundamentos de scripting en Unity
1Conceptos básicos de C# en Unity
Hola, UnityVariablesLos decimales necesitan una fTexto en la consolaVariables que recuerdanIf y ElseComparar númerosRepaso: Recolector de monedas7Bucles y métodos
Repetir con forBucles dentro de buclesEscribir un métodoMétodos que respondenArraysRepaso: escalera10Encontrar cosas
Buscar por nombreEtiquetasBuscar por tipoLas referencias vencen a FindEl null de UnityRepaso: moneda más cercana13Proyecto: Esquiva los bloques
El corredorBloques desde el cielo2Haz que se mueva
Coloca el cuboMuévelo en cada fotogramaGira cada segundoDirige con las teclasRepaso: conduce el cubo5Vectores
Sumar vectoresDireccionesEspacio local y mundialVelocidad diagonalDistancia entre objetosVector3 es una estructuraRepaso: piloto de dron8GameObjects y componentes
Referencias en el InspectorObtener un componenteComponentes faltantesAñadir un componenteRequireComponentMostrar y ocultarRepaso: interruptor de luz3El Inspector
Campos del InspectorSerializeFieldFloats y MathfAtributos del InspectorRepaso: Ascensor6Transformaciones y jerarquía
Padres e hijosIza la banderaEscalaMira las cosasMuévete hacia un puntoRepaso: Luna en órbita9Proyecto: Atrapa la estrella
El cazadorUna estrella fugaz12El ciclo de vida de un script
Awake y StartUpdate y LateUpdateOnEnable y OnDisableEl orden del ciclo de vidaRepaso: registrador del ciclo de vidaPractica por tu cuenta: Playground de Unity