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 / 56.
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ırdaki nesne yuvasına sürükle; işlev açılır listesinde bu nesnenin bileşenleri ve her birinin public metotları listelenir. Jukebox > NextTrack seçildiğinde, her tıklama bu metodu ç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 listede public olan, void döndüren ve parametre almayan ya da satırda değerini belirlediğin bir int, float, string, bool veya Object parametresi alan metotlar listelenir. Private bir NextTrack listelenmez, dolayısıyla seçilemez. Satır metodu adıyla kaydeder: NextTrack'i SkipTrack olarak yeniden adlandırırsan satırda <Missing Jukebox.NextTrack> görünür ve tıklamalar hiçbir şey yapmaz; Console'da da hata çıkmaz.
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. Kodda AddListener kullanımı, oyun çalışırken oluşturulan düğmelere ve bir değişkenden değer aktaran çağrılara uygundur; ayrıca derleyici, yeniden adlandırılmış bir metodu burada yakalar. Koddan eklenen dinleyiciler On Click () listesinde hiçbir zaman görünmez; dolayısıyla bir düğme her iki şekilde de bağlanırsa ikisini de çağırır.
Görev
KolayKalenin asma köprüsünün üç düğmesi var; Inspector'da BridgeControl üzerindeki Drawbridge betiğine bağlanmışlar. Henüz hiçbiri çalışmıyor. Hierarchy'de RaiseButton, LowerButton ve LampButton'ı seçip her bir On Click () satırını incele: satır, tıklamanın çağırdığı yöntemin adını belirtir. Yalnızca Drawbridge.cs dosyasını değiştirerek üçünün de çalışmasını sağla:
- Yöntemlerden biri başka bir adla zaten yazılmış. Satırında çağrılan adı ver.
- Köprü yükseltilince
bridge, x ekseni etrafında 70 derece döner (localRotationdeğeri) vestatusTextiçindeBridge: upgösterilir. - Lamba düğmesi,
warningLampkapalıyken açar, açıkken kapatır.
Play'e bas, tüm düğmeleri dene, ardından Check'e 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";
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse 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östergesi4Sahneler ve Bölümler
Bir Sahne YüklemeBölümü Yeniden BaşlatmaSonraki BölümSahneler Arasında SaklamaTekrar: Bölüm Seçimi10Proje: 3D Platform Oyunu
ParkurHareketli Platformlar2Düğ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 Paralar