Unity’de Event ve Delegate

Unity’de event ve delegate’i anlattık.
unity event ve delegate dersi
Unity: Event ve Delegate

Unity kullanırken karşımıza çıkan “event” (olay) ve “delegate” (delege) ibarelerini sıklıkla görmüş olabilirsiniz. Bu iki kavram hem iç içe hem de birbirinden farklı diyebiliriz.

Unity’de event nedir?

Unity’nin resmi eğitiminde de aktarıldığı üzere, olaylar özelleştirilmiş delegelerdir ve içlerinde metot depolamamıza yararlar. Kısaca bir olay olduğunda diğer class’ları alarma geçirmek istiyorsanız kullanmanız gerekir. Olaylarınıza yeni bir metodu şu şekilde ‘subscribe’ edebilirsiniz:

Ve şu şekilde de subscribe ettiğiniz objeye tam tersi işlem de uygulayabilirsiniz:

Olayı herhangi bir metodu çağırır gibi çağırdığınızda subscribe ettiğiniz bütün metotların çalıştığını göreceksiniz.

Unity’de delegate nedir?

Delege için kısaca aracı diyebiliriz. Delegeler olmadan olayların bir anlamı kalmaz. Delegeler sayesinde olayları çağırabiliyoruz. Ama şunu da söylemek gerekli ki delegeler olaylara bağlı değildir. Yani, eğer siz olayın anahtar kelimesini silip yine bir değişken tanımlarsanız o da aynı şekilde çalışacaktır. Örneğin: 

Öyleyse delege ile olay arasında ne gibi farklılıklar var diye düşünüyor olabilirsiniz. Şu tabloyla açıklamaya çalışalım.

Delegate – Event Farkları

DelegateEvent
Delegeler, delege anahtar kelimesi ile tanımlanır.Olaylar, olay anahtar kelimesi ile tanımlanır.
Delegeler function pointer (fonksiyon göstericileri) olarak görev alırlar. Bir veya daha fazla metot referans olarak tutarlar.Olay ise bildirim mekanizmasıdır ve delegelere bağlıdırlar.
Delegeler bağımsızdırlar ve olaylara bağlı değildirler.Olaylar delegelere bağımlıdırlar ve delegelersiz yaratılamazlar. Olaylar kullanıcıların delegeleri “=” operatörü ile resetlemesini ve sadece çağıralacaklar listesine ekleme veya çıkarma yapabilmelerine olanak sağlar.
Delegeler metot parametre olarak verilebilir.Olayları ise metotlara parametre olarak verirseniz hata alırsınız.
“=” operatörü tek bir metot atama yaparken += operatörü birden fazla metodu delegeye atayabilir aynı şekilde -= metodu da atamayı geri alacaktır.“=” operatörü olaylar ile kullanılamaz ve sadece += ve -= operatörleri görev alabilir. Bunların işlevi delegelerdeki gibidir.

Özetlemek gerekirse olaylar sadece delege anahtar kelimesi ile çalışabilir ancak o satırdan olay anahtar kelimesini silseniz de kodunuz düzgün çalışacaktır ama bizlerin olay kullanma amacı “=” operatörü kullanarak diğer “subscribed” olmuş metotların listeden silinmesini önlemektir.

Mobidictum Academy YouTube kanalında konuyla ilgili hazırladığımız videoyu izleyebilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir