Buscar por nombre
Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 42 de 67.
GameObject.Find("Player") busca en la escena un objeto activo con ese nombre exacto y lo devuelve, o devuelve null si no hay ninguno. Evita conectar un campo en el Inspector, con un costo: busca entre todos los objetos de la escena. Así que llámalo una vez, en Start(), y guarda el resultado en un campo. Esta cámara de seguridad encuentra al Player cuando empieza el juego y lo sigue en cada fotograma:
private Transform player;
void Start()
{
player = GameObject.Find("Player").transform;
}
void Update()
{
transform.LookAt(player);
}El nombre debe coincidir exactamente, incluidas las mayúsculas y los espacios: "player" o "Player " no encuentran nada. Find también omite los objetos inactivos (ocultos). Una búsqueda fallida devuelve null silenciosamente, y el error aparece en la siguiente línea que usa el resultado: aquí, .transform lanza NullReferenceException. Una ruta como "Car/Wheel" encuentra Wheel, que es un objeto secundario de Car.
Desafío
IntermedioEl rover informa de lo lejos que está su objetivo.
- En
Start(), encuentra el objeto llamadoGoaly guarda su Transform engoal. - Cada vez que se pulse Space, registra la distancia del rover al objetivo, como
Distance to goal: 5.
El objetivo puede moverse, así que mide la distancia en el momento en que se pulse Space.
Pulsa Play, haz clic en el juego y pulsa Space, después Check.
Pruébalo tú mismo
using UnityEngine;
public class Beacon : MonoBehaviour
{
private Transform goal;
void Start()
{
// Busca el objeto llamado Goal y guarda su Transform en goal.
}
void Update()
{
// Space: registra la distancia al objetivo.
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos de scripting en Unity
1Tu primer script
Hola, UnityColoca el cuboMuévete en cada fotogramaGira cada segundoDirige con las teclasRepaso: conduce el cubo4Vectores
Sumar vectoresDireccionesEspacio local y globalVelocidad diagonalDistancia entre objetosVector3 es una estructuraRepaso: piloto de dron7Proyecto: Atrapa la estrella
El atrapadorUna estrella fugaz10El ciclo de vida de los scripts
Awake y StartUpdate y LateUpdateOnEnable y OnDisableEl orden del ciclo de vidaRepaso: registrador del ciclo de vida2El Inspector
Campos del InspectorSerializeFieldNúmeros decimales y MathfAtributos del InspectorRepaso: Ascensor5Transformaciones y jerarquía
Padres e hijosEscalaMirar objetosMoverse hacia un puntoRepaso: Luna en órbita8Encontrar cosas
Buscar por nombreEtiquetasBuscar por tipoLas referencias superan a FindEl valor nulo de UnityRepaso: la moneda más cercana11Proyecto: Esquiva los bloques
El corredorBloques que caen6GameObjects y componentes
Referencias en el InspectorObtener un componenteComponentes faltantesAñadir un componenteRequireComponentMostrar y ocultarRepaso: interruptor de luz