Menu
CoddyTech

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.

challenge icon

Sfida

Medio

Ogni 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 Transform chiamato post.
  • Una guardia cammina verso la posizione del proprio posto a speed unità 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.
    }
}
quiz iconMettiti alla prova

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