Menu
CoddyTech

Pannelli attivi e disattivi

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

Un pannello è un'immagine dell'interfaccia utente, spesso estesa su tutto lo schermo, con pulsanti e testi come elementi figlio. 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 con 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. Tieni lo script che apre un pannello fuori da quel pannello: un GameObject inattivo non esegue né Start() né Update(), quindi uno script su un pannello salvato nascosto non collegherebbe mai i suoi pulsanti. Il Canvas o un oggetto game manager, che rimangono attivi, sono posizioni adatte. mapPanel.activeSelf indica se il pannello è attivo, quindi mapPanel.SetActive(!mapPanel.activeSelf) ne inverte lo stato.

challenge icon

Sfida

Facile

Il gioco del prato ha bisogno di un menu. Menu.cs si trova sul Canvas (HUD) e la scena collega i suoi campi. Entrambi i pannelli sono attivi nella scena, così è facile modificarli. Scrivi Start() in modo che:

  • Quando il gioco inizia, menuPanel e helpPanel siano nascosti.
  • menuButton apra il pannello del menu e il suo resumeButton lo chiuda.
  • helpButton, sul pannello del menu, sostituisca il pannello del menu con quello dell’aiuto e backButton, sul pannello dell’aiuto, torni al menu.
  • Mentre il menu è aperto, il giocatore non può camminare: lo script mover viene disabilitato quando si apre il menu e riabilitato quando Resume lo chiude.

Premi Gioca, cammina, apri il menu e la relativa schermata di aiuto, 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
    }
}
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