Unity’de Butonlara İşlev Kazandırmak

Unity’de bir butona işlev kazandırmak için en yaygın yollardan biri boş bir GameObject oluşturup bu obje üzerine scripti atamaktır yani ui elemanlarımızın o scriptin içerisine ulaşmasını sağlıyoruz. Bu şekilde arayüz işlemlerini tek bir dosyada toplayabiliriz.

Butona veya herhangi bir ui elemanına script doğrudan component olarak atanması yerine bu elemanları kontrol etmek için oluşturulan scriptin bulunduğu nesne event kısmından verilir.

1- Oyuna UIManager isimli boş bir oyun nesnesini ve buton dahil ediyorum. (GameObject -> Create Empty, GameObject -> UI -> Button)

2- UIManager’a ButonOlay isimli script oluşturup component olarak atıyorum. Scriptin içeriği:

public void DebugYazdir(){Debug.Log("Merhaba");}

3- Butona tıklayıp inspector panelinde On Click() alanında + ile yeni bir event oluşturuyorum ve burada game object tipinde parametre alan yere UIManager’ı sürükleyip bırakıyorum.

4- Sağındaki fonksiyonlar kısmında ButonOlay scripti görünecektir bunun içinde oluşturduğumuz “DebugYazdir” isimli fonksiyonu seçtiğimiz takdirde butona tıklayınca metot tetiklenecektir.

Bu kısımda unity’in varsayılan fonksiyonları da görünecektir.

  • bool enabled : Bağlı script aktif mi değil mi kontrol edebiliyoruz.
  • string name : scriptin ismini kontrol ediyoruz.
  • bool runInEditMode : Editör paneli içinde çalışıp çalışmayacağı belirlenir.
  • string tag : Tag ulaşıyoruz.
  • bool useGUILayout : Unity3D’nin eski gui’ı kullanıp kullanmamasını ayarlanıyor.
  • BroadcastMessage (string) : String bir mesajı oyun içine gödermemizi sağlar.
  • CancelInvoke (string) : Zamanlanmış bir fonksiyonu ismiyle iptal edebiliriz.
  • CancelInvoke() : Bütün zamanlanmış fonksiyonları iptal eder.
  • SendMessage (string) : BroadcastMessage gibi mesaj gönderir fakat sadece script içindir.
  • SendMessageUpwards (string) : Hiyerarşide bulunan butonların üzerinde kalan bütün game objelere mesaj gönderir.
  • StopAllCoroutines() : Zamanlanabilir fonksiyonlar olan coroutine’lerin tamamını durdurur.
  • StopCoroutine (string) : ismini verdiğimiz coroutine’i durdurabiliriz.

Boş bir oyun objesi yerine oyundaki kamerayı veya ışığı da verebiliriz. Verdiğimiz bu nesnelerin kendi üzerinde bulunan fonksiyonlara ulaşabiliriz. Unity button kullanımını basit bir şekilde özetlemek istedim.