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.
Tantangan
MudahGame 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,
menuPaneldanhelpPaneldisembunyikan. menuButtonmembuka panel menu, danresumeButtonmenutupnya.helpButton, yang berada di panel menu, menukar panel menu dengan panel bantuan, danbackButton, yang berada di panel bantuan, menukarnya kembali.- Saat menu terbuka, pemain tidak bisa berjalan: script
moverdinonaktifkan 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
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Membangun Game Sungguhan
4Scene dan Level
Muat SceneMulai Ulang LevelLevel BerikutnyaPertahankan Antar-SceneRekap: Pilih Level10Proyek: Platformer 3D
LintasanPlatform Bergerak2Tombol dan Layar
Tombol dan onClickLambdaMenghubungkan di InspectorPanel Aktif dan NonaktifBilah KesehatanRangkuman: Toko Upgrade5Menyimpan dengan PlayerPrefs
Simpan AngkaMuat dengan Nilai DefaultSkor TertinggiSimpan PengaturanUlasan: Koin di Bank