Menu
CoddyTech

Collegare nell'Inspector

Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 8 di 56.

Un pulsante può anche essere collegato nell’Inspector, senza usare affatto AddListener. L’elenco On Click () del Button è inizialmente vuoto. Il pulsante + aggiunge una riga; trascina nella casella dell’oggetto della riga l’oggetto che contiene lo script e il menu a discesa delle funzioni mostra i componenti di quell’oggetto, ciascuno con i propri metodi pubblici. Seleziona Jukebox > NextTrack e a ogni clic viene chiamato questo metodo:

public class Jukebox : MonoBehaviour
{
    public string[] tracks;
    private int current;

    public void NextTrack()
    {
        current = (current + 1) % tracks.Length;
        Debug.Log("Now playing: " + tracks[current]);
    }
}

Il menu a discesa mostra i metodi che sono public, restituiscono void e non accettano parametri oppure ne accettano uno di tipo int, float, string, bool o Object, il cui valore imposti nella riga. Un metodo NextTrack private non viene mostrato, quindi non può essere selezionato. La riga memorizza il metodo in base al suo nome: rinomina NextTrack in SkipTrack e nella riga apparirà <Missing Jukebox.NextTrack>; i clic non faranno nulla e non verrà visualizzato alcun errore nella Console.

Le righe nell’Inspector sono adatte ai pulsanti inseriti nella scena: chiunque faccia parte del team può vedere e modificare ciò che un pulsante chiama senza aprire uno script. AddListener nel codice è adatto ai pulsanti creati durante l’esecuzione del gioco e alle chiamate che passano un valore da una variabile; in questo caso, il compilatore rileva se il nome di un metodo viene modificato. I listener aggiunti dal codice non appaiono mai nell’elenco On Click (), quindi un pulsante collegato in entrambi i modi li chiama entrambi.

challenge icon

Sfida

Facile

Il ponte levatoio del castello ha tre pulsanti, collegati nell’Inspector allo script Drawbridge su BridgeControl. Per ora non funziona nessuno. Seleziona RaiseButton, LowerButton e LampButton nella Hierarchy e leggi ogni riga On Click (): indica il metodo che viene chiamato al clic. Falli funzionare tutti e tre modificando solo Drawbridge.cs:

  • Uno dei metodi è già scritto, con un altro nome. Dagli il nome indicato dalla relativa riga.
  • Il sollevamento ruota bridge di 70 gradi attorno all’asse x (la sua localRotation) e mostra Bridge: up in statusText.
  • Il pulsante della lampada accende warningLamp quando è spenta e la spegne quando è accesa.

Premi Play, prova ogni pulsante, poi premi Check.

Provalo tu

using UnityEngine;
using TMPro;

public class Drawbridge : MonoBehaviour
{
    public Transform bridge;
    public TMP_Text statusText;
    public GameObject warningLamp;

    public void LowerBridge()
    {
        bridge.localRotation = Quaternion.Euler(0f, 0f, 0f);
        statusText.text = "Bridge: down";
    }
}
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 Creare veri giochi