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.
Sfida
FacileIl 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
bridgedi 70 gradi attorno all’asse x (la sualocalRotation) e mostraBridge: upinstatusText. - Il pulsante della lampada accende
warningLampquando è 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";
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Creare veri giochi
1Testo sullo schermo
Canvas e testoMostra il punteggioFormattare i numeriUn timer per il conto alla rovesciaRiepilogo: tachimetro4Scene e livelli
Caricare una scenaRiavviare il livelloLivello successivoMantenere i dati tra le sceneRiepilogo: selezione del livello10Progetto: Platform 3D
Il percorsoPiattaforme mobili2Pulsanti e schermate
Pulsanti e onClickLambdaCollegare nell'InspectorPannelli attivi e disattiviBarre della saluteRiepilogo: negozio degli upgrade5Salvare con PlayerPrefs
Salvare un numeroCaricare con un valore predefinitoPunteggio massimoSalvare le impostazioniRiepilogo: monete in banca8Controller del personaggio
CharacterController.MoveGravità manualeSaltoSpingere gli oggettiMuoviti dove guardiRiepilogo: doppio salto3Il gestore del gioco
Uno script gestisce il giocoIl SingletonStati di giocoSelezionare lo statoRiepilogo: gestore del round6Progetto: Corsa infinita
Tre corsieOstacoli in arrivo9Il nuovo sistema di input
Due sistemi di inputTastiera e mousePremuto in questo frameAzioni di inputRiepilogo: cambio di input