Pannelli attivi e disattivi
Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 9 di 60.
Un pannello è un'immagine dell'interfaccia utente, spesso estesa su tutto lo schermo, con pulsanti e testi al suo interno. SetActive(false) sul pannello lo nasconde insieme a tutto ciò che contiene, e non è possibile fare clic sui suoi pulsanti mentre è nascosto. Quando è visibile, la sua immagine intercetta i clic destinati a qualsiasi elemento sottostante, quindi non è possibile premere i pulsanti dietro un pannello a schermo intero. Questa mappa si apre da un pulsante nell'angolo e si chiude da un pulsante sulla mappa:
public GameObject mapPanel;
public Button mapButton;
public Button closeButton;
void Start()
{
mapPanel.SetActive(false);
mapButton.onClick.AddListener(() => mapPanel.SetActive(true));
closeButton.onClick.AddListener(() => mapPanel.SetActive(false));
}È più facile modificare i pannelli quando sono visibili, quindi spesso le scene vengono salvate con i pannelli attivi e Start() li nasconde. Non assegnare lo script che apre un pannello a quel pannello: un GameObject inattivo non esegue Start() né Update(), quindi uno script su un pannello salvato come nascosto non collegherebbe mai i suoi pulsanti. Il Canvas o un oggetto gestore di gioco, che rimangono attivi, sono luoghi adatti per lo script. mapPanel.activeSelf indica se il pannello è attivo, quindi mapPanel.SetActive(!mapPanel.activeSelf) ne inverte lo stato.
Sfida
FacileAggiungi un menu al gioco del prato: scrivi Start() in Menu.cs.
- Nascondi
menuPanelehelpPanelconSetActive(false). menuButtonmostra il menu e impostamover.enabled = false;resumeButtonlo nasconde e impostamover.enabled = true.helpButtonnasconde il menu e mostra la schermata di aiuto;backButtonfa l'opposto.
Premi «Gioca» e apri il menu: il giocatore non può camminare finché non selezioni «Riprendi». Poi premi «Verifica».
Provalo tu
using UnityEngine;
using UnityEngine.UI;
public class Menu : MonoBehaviour
{
public GameObject menuPanel;
public GameObject helpPanel;
public Button menuButton;
public Button resumeButton;
public Button helpButton;
public Button backButton;
public PlayerMover mover;
void Start()
{
// Nascondi entrambi i pannelli, poi collega Menu, Resume, Help e Back
}
}
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