Panelleri Açma ve Kapama
Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 9 / 60.
Bir panel, genellikle tüm ekranı kaplayacak şekilde genişletilmiş, alt öğeleri düğmeler ve metinler olan bir UI Görselidir. Paneldeki SetActive(false), içindeki her şeyle birlikte paneli gizler ve panel gizliyken düğmelerine tıklanamaz. Panel gösterilirken görseli, altındaki öğeler için yapılan tıklamaları alır; bu nedenle tam ekran bir panelin arkasındaki düğmelere basılamaz. Bu harita, köşedeki bir düğmeyle açılır ve haritanın üzerindeki bir düğmeyle kapanır:
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));
}Paneller gösterilirken düzenlenmeleri daha kolay olduğundan, sahneler genellikle paneller açıkken kaydedilir ve Start() onları gizler. Paneli açan betiği o panelden ayrı tut: etkin olmayan bir GameObject, Start() veya Update() çağrısı almaz; bu nedenle gizli kaydedilmiş bir paneldeki betik, düğmelerini asla ayarlayamaz. Etkin kalmaya devam eden Canvas veya bir oyun yöneticisi nesnesi, betik için uygun yerlerdir. mapPanel.activeSelf, panelin açık olup olmadığını belirtir; dolayısıyla mapPanel.SetActive(!mapPanel.activeSelf) panelin durumunu değiştirir.
Görev
KolayÇayır oyununa bir menü ekle: Menu.cs içinde Start() yaz.
menuPanelvehelpPanelöğeleriniSetActive(false)ile gizle.menuButtonmenüyü gösterir vemover.enabled = falseayarını yapar;resumeButtonmenüyü gizler vemover.enabled = trueayarını yapar.helpButtonmenüyü gizler ve yardım panelini gösterir;backButtonbunun tersini yapar.
“Oyna” düğmesine basıp menüyü aç: oyuncu, “Sürdür” düğmesine basılana kadar yürüyemez. Ardından “Kontrol et” düğmesine bas.
Kendin dene
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()
{
// Her iki paneli gizle, ardından Menu, Resume, Help ve Back düğmelerini bağla
}
}
Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler
1Ekrandaki Metinler
Canvas ve MetinSkoru GösterSayıları BiçimlendirGeri Sayım ZamanlayıcısıTekrar: Hız Göstergesi2Düğmeler ve Ekranlar
Düğmeler ve onClickLambda İfadeleriInspector'da Bağlantı KurmaPanelleri Açma ve KapamaCan ÇubuklarıTekrar: Yükseltme Mağazası5PlayerPrefs ile Kaydetme
Bir Sayı KaydetmeVarsayılan Değerle YüklemeEn Yüksek SkorAyarları KaydetmeTekrar: Bankadaki ParalarKendi başına pratik yap: Unity playground