Inspector'da Bağlantı Kurma
Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 8 / 60.
Bir düğme, hiç AddListener kullanmadan Inspector'da da bağlanabilir. Button'ın On Click () listesi başlangıçta boştur. + işareti bir satır ekler; betiği içeren nesneyi satırın nesne yuvasına sürükle, işlev açılır menüsünde o nesnenin bileşenleri ve her bileşenin genel yöntemleri listelenir. Jukebox > NextTrack öğesini seç; böylece her tıklama bu yöntemi çağırır:
public class Jukebox : MonoBehaviour
{
public string[] tracks;
private int current;
public void NextTrack()
{
current = (current + 1) % tracks.Length;
Debug.Log("Now playing: " + tracks[current]);
}
}Açılır menüde public olan, void döndüren ve parametre almayan ya da değerini satırda ayarladığın bir int, float, string, bool veya Object alan yöntemler listelenir. private bir NextTrack listelenmez, dolayısıyla seçilemez. Satır yöntemi adına göre saklar: NextTrack'i SkipTrack olarak yeniden adlandırırsan satırda <Missing Jukebox.NextTrack> görünür ve tıklamalar, Console'da hata olmadan hiçbir şey yapmaz.
Inspector'daki satırlar, sahneye yerleştirilen düğmeler için uygundur: ekipteki herkes bir betiği açmadan düğmenin ne çağırdığını görebilir ve değiştirebilir. Kod içindeki AddListener, oyun çalışırken oluşturulan düğmeler ve bir değişkenden değer aktaran çağrılar için uygundur; ayrıca derleyici, buradaki bir yöntemin yeniden adlandırıldığını yakalar. Koddan eklenen dinleyiciler On Click () listesinde hiçbir zaman görünmez; bu nedenle bir düğme her iki şekilde de bağlanmışsa ikisini de çağırır.
Görev
KolayAsma köprünün üç düğmesini Drawbridge.cs dosyasında çalışır hâle getir.
- Her düğmenin Tıklanınca () satırı
Raise,LowerveyaToggleLampişlevini çağırır.LowerBridgeadınıLowerolarak değiştir. public void Raise()yaz:bridge.localRotation, x ekseni etrafında 70 dereceye döner vestatusTextiçindeBridge: upyazar.public void ToggleLamp()yaz:warningLampkapalıyken açılır, açıkken kapanır.
“Oyna” düğmesine bas: her düğme görevini yapar. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
using TMPro;
public class Drawbridge : MonoBehaviour
{
public Transform bridge;
public TMP_Text statusText;
public GameObject warningLamp;
public void LowerBridge()
{
bridge.localRotation = Quaternion.Euler(0f, 0f, 0f);
statusText.text = "Bridge: down";
}
}
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