Trova per nome
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 42 di 67.
GameObject.Find("Player") cerca nella scena un oggetto attivo con esattamente quel nome e lo restituisce, oppure restituisce null se non ce n'è nessuno. Evita di collegare un campo nell'Inspector, ma ha un costo: esamina ogni oggetto della scena. Quindi chiamalo una sola volta, in Start(), e conserva il risultato in un campo. Questa telecamera di sicurezza trova il Player all'avvio del gioco e lo osserva a ogni frame:
private Transform player;
void Start()
{
player = GameObject.Find("Player").transform;
}
void Update()
{
transform.LookAt(player);
}Il nome deve corrispondere esattamente, comprese maiuscole e spazi: "player" o "Player " non trova nulla. Find ignora anche gli oggetti inattivi (nascosti). Una ricerca non riuscita restituisce null senza avvisare, e l'errore si manifesta alla riga successiva che usa il risultato: qui, .transform genera NullReferenceException. Un percorso come "Car/Wheel" trova Wheel, che è un elemento figlio di Car.
Sfida
MedioIl rover comunica quanto è lontano dal suo obiettivo.
- In
Start(), trova l'oggetto chiamatoGoale conserva il suo Transform ingoal. - Ogni volta che premi Space, registra la distanza dal rover all'obiettivo, come
Distance to goal: 5.
L'obiettivo può muoversi, quindi misura la distanza nel momento in cui premi Space.
Premi Play, fai clic sul gioco e premi Space, quindi Check.
Provalo tu
using UnityEngine;
public class Beacon : MonoBehaviour
{
private Transform goal;
void Start()
{
// Trova l'oggetto chiamato Goal e conserva il suo Transform in goal.
}
void Update()
{
// Space: registra la distanza dall'obiettivo nel log.
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti di scripting in Unity
1Il tuo primo script
Ciao, UnityPosiziona il cuboMuovi a ogni frameRuota ogni secondoGuida con i tastiRiepilogo: guida il cubo4Vettori
Sommare vettoriDirezioniSpazio locale e spazio globaleVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni7Progetto: Acchiappa la stella
L'acchiappatoreUna stella cadente10Il ciclo di vita degli script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL’ordine del ciclo di vitaRipasso: logger del ciclo di vita2L'Inspector
Campi dell'InspectorSerializeFieldNumeri decimali e MathfAttributi dell'InspectorRiepilogo: Ascensore5Trasformazioni e gerarchia
Genitori e figliScalaGuarda gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita8Trovare gli oggetti
Trova per nomeTagTrova per tipoI riferimenti sono meglio di FindIl null di UnityRipasso: la moneta più vicina6Oggetti di gioco e componenti
Riferimenti nell’InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRipasso: interruttore della luce