Collegare nell'Inspector
Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 8 di 60.
Un pulsante può essere collegato anche nell’Inspector, senza usare affatto AddListener. L’elenco On Click () del pulsante è 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 elenca i componenti di quell’oggetto, ciascuno con i propri metodi pubblici. Scegli 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 elenca 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 privato NextTrack non viene elencato, quindi non può essere selezionato. La riga memorizza il metodo tramite il suo nome: rinomina NextTrack in SkipTrack e nella riga comparirà <Missing Jukebox.NextTrack>; i clic non faranno nulla e non verrà visualizzato alcun errore nella Console.
Le righe nell’Inspector sono adatte ai pulsanti posizionati nella scena: chiunque faccia parte del team può vedere e modificare la funzione chiamata da un pulsante 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 un metodo viene rinominato. I listener aggiunti dal codice non compaiono mai nell’elenco On Click (), quindi un pulsante collegato in entrambi i modi li chiama entrambi.
Sfida
FacileFai funzionare i tre pulsanti del ponte levatoio in Drawbridge.cs.
- La riga On Click () di ciascun pulsante chiama
Raise,LoweroppureToggleLamp. RinominaLowerBridgeinLower. - Scrivi
public void Raise():bridge.localRotationruota di 70 gradi attorno all’asse x estatusTextmostraBridge: up. - Scrivi
public void ToggleLamp(): accendewarningLampquando è spenta e la spegne quando è accesa.
Premi «Gioca»: ogni pulsante svolge la sua funzione. Poi premi «Verifica».
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";
}
}
Tutte le lezioni di Creare veri giochi
1Testo sullo schermo
Canvas e testoMostra il punteggioFormattare i numeriUn timer per il conto alla rovesciaRiepilogo: tachimetro2Pulsanti 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: Runner infinito
Tre corsieOstacoli in arrivo9Il nuovo sistema di input
Due sistemi di inputTastiera e mousePremuto in questo frameAzioni di inputRiepilogo: cambio di inputEsercitati da solo: Playground Unity