Menu
CoddyTech

Panel Aktif dan Nonaktif

Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 9 dari 56.

panel adalah Image UI yang sering direntangkan memenuhi seluruh layar, dengan tombol dan teks sebagai elemen turunannya. SetActive(false) pada panel menyembunyikannya beserta semua yang ada di dalamnya, dan tombolnya tidak dapat diklik saat tersembunyi. Saat ditampilkan, gambarnya menangkap klik yang ditujukan untuk apa pun di bawahnya, jadi tombol di balik panel layar penuh tidak dapat ditekan. Peta ini dibuka dari tombol di sudut dan ditutup dari tombol pada peta:

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));
}

Panel lebih mudah diedit saat ditampilkan, jadi scene sering disimpan dalam keadaan panel aktif, lalu Start() menyembunyikannya. Jangan letakkan skrip yang membuka panel pada panel tersebut: GameObject yang tidak aktif tidak menjalankan Start() atau Update(), jadi skrip pada panel yang disimpan dalam keadaan tersembunyi tidak akan pernah menghubungkan tombol-tombolnya. Canvas atau object pengelola game, yang tetap aktif, adalah tempat yang cocok untuk skrip tersebut. mapPanel.activeSelf menunjukkan apakah panel aktif, jadi mapPanel.SetActive(!mapPanel.activeSelf) membalik keadaannya.

challenge icon

Tantangan

Mudah

Game padang rumput membutuhkan menu. Menu.cs berada di Canvas (HUD), dan scene menghubungkan field-nya. Kedua panel aktif di scene agar mudah diedit. Tulis Start() agar:

  • Saat game dimulai, menuPanel dan helpPanel disembunyikan.
  • menuButton membuka panel menu, dan resumeButton menutupnya.
  • helpButton, yang berada di panel menu, menukar panel menu dengan panel bantuan, dan backButton, yang berada di panel bantuan, menukarnya kembali.
  • Saat menu terbuka, pemain tidak bisa berjalan: script mover dinonaktifkan saat menu terbuka dan diaktifkan kembali saat Resume menutupnya.

Tekan Play, berjalanlah, buka menu dan bagian bantuannya, lalu tekan Check.

Coba sendiri

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()
    {
        // Sembunyikan kedua panel, lalu hubungkan Menu, Resume, Help, dan Back
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Membangun Game Sungguhan