Riferimenti nell’Inspector
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 29 di 67.
Un campo può contenere un altro oggetto. Assegnagli un tipo come Transform o GameObject e l'Inspector mostrerà uno slot vuoto in cui inserire un oggetto trascinandolo dalla Hierarchy. Questo script della fotocamera segue l'oggetto trascinato in player, rimanendo 3 unità sopra di esso e 6 dietro:
public Transform player;
void Update()
{
transform.position = player.position + new Vector3(0, 3, -6);
}Uno slot lasciato vuoto mostra None e la prima riga che lo usa genera, a ogni frame: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. La riga successiva del messaggio dice cosa fare: You probably need to assign the player variable of the CameraFollow script in the inspector. Indica il campo e lo script, così sai quale slot riempire.
Alcuni script dovrebbero funzionare anche con lo slot vuoto. Unity fa sì che uno slot vuoto sia uguale a null, quindi uno script di questo tipo controlla prima di usarlo. Con if (player != null) attorno alla riga in Update(), una fotocamera senza player rimane dov'è invece di generare un errore.
Sfida
MedioOgni guardia cammina verso il proprio posto. Nella scena, l'Inspector di Guard1 inserisce l'oggetto Post1 in un campo chiamato post. Il posto di Guard2 non è ancora stato creato, quindi il suo slot post è vuoto.
- Aggiungi allo script Guard un campo
Transformchiamatopost. - Una guardia cammina verso la posizione del proprio posto a
speedunità al secondo e si ferma lì, anche se il posto viene spostato in seguito. - Una guardia il cui slot del posto è vuoto rimane dov'è, senza errori.
Premi Play, seleziona ogni guardia nella Hierarchy per vedere il suo slot Post, poi premi Check.
Provalo tu
using UnityEngine;
public class Guard : MonoBehaviour
{
// post: il Transform verso cui cammina questa guardia, impostato nell'Inspector
public float speed = 2f;
void Update()
{
// Cammina verso post alla velocità speed. Una guardia con lo slot post vuoto rimane ferma.
}
}
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 orbita6Oggetti di gioco e componenti
Riferimenti nell’InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRipasso: interruttore della luce