Unity Callback Fonksiyonları Unityde bazı fonksiyonları neden update içinde ya da başka fonksiyonların içinde çağıramıyoruz? Neden bunları ayrı bir şekilde yazıyoruz? Update içinde ya da kendi fonksiyonlarımız içinde direkt kullansaydık daha kolay olmaz mıydı?
Bunu yapamamazın sebebi bu fonksiyonların callback olmasıdır. Nedir bu callback fonksiyonları? Callback fonksiyonları Unity tarafından sizin yerinize çağırılan fonksiyonlardır. Biz neden çağıramayız? Çünkü daha etkili, Örneğin OnTriggerEvent sizin yerinize fizik motoru tarafından çağırılıyor.
Callback fonksiyonlarını bağımsız kullanmazsak bazı sorunlara neden olabilir.
void Update() //Tahmin edebileceğiniz gibi Update() de bir callback fonksiyonu
{
Update(); //Genelde callback fonksiyonlarını içiçe kullanamazsınız aslında
//ama başardığınızda da sonuç bu }
Üstte gördüğümüz kod Update'in bilgisayarınız çökene kadar maksimum hızla çağırılmasına sebep olacaktır.(Recursive function)
Hangi Fonksiyonlar Callback?
Buraya tıklayarak; Unity kılavuzundan MonoBehaviour kısmına gelirseniz, Messages kısmında gösterilen bütün fonksiyonlar callback fonksiyonudur.
Peki Nasıl Çalışıyor? Performansı Nasıl Arttırıyor?
Callback fonksiyonları sadece gerekli olduğunda çalışırlar. Fırına bir kek koyduğumuzu düşünelim. Bu kekin pişip pişmediğini test etmek için iki yolumuz var. 1-Sürekli olarak kekin pişip pişmediğini kontrol etmek. ( Update(kek); ) 2-Fırının kek pişince bize haber vermesi.
Fırın burada fizik motoru veya oyun motorunun kendisi oluyor.
*Callback: Başka bir fonksiyona önce argüman olarak verilip sonra o fonksiyonun iradesinde çağırılan fonksiyona denir.Geri arama anlamına geliyor.
Diyelim bir enemy'miz var. Collider ekleyip bize OnTriggerEnter ile bize dokunduğunda atak yapması mı daha az performans harcar? Yoksa Update içine if(enemy.transform.position = player.transform.position) yapıp yanına yaklaşınca atak yapması mı daha az performans harcar?
OnTriggerEnter fonksiyonu zaten unityengine'de optimize edilmiş bir fonksiyon.
Callback ve event sistemi birlikte anlatsaydınız keşke, callback zaten çok kısa ve programlama temeli olan herkesin anlayabileceği bir şey.
Unityde bazı fonksiyonları neden update içinde ya da başka fonksiyonların içinde çağıramıyoruz?
Neden bunları ayrı bir şekilde yazıyoruz? Update içinde ya da kendi fonksiyonlarımız içinde direkt kullansaydık daha kolay olmaz mıydı?
Bunu yapamamazın sebebi bu fonksiyonların callback olmasıdır.
Nedir bu callback fonksiyonları?
Callback fonksiyonları Unity tarafından sizin yerinize çağırılan fonksiyonlardır.
Biz neden çağıramayız?
Çünkü daha etkili, Örneğin OnTriggerEvent sizin yerinize fizik motoru tarafından çağırılıyor.
Callback fonksiyonlarını bağımsız kullanmazsak bazı sorunlara neden olabilir.
Üstte gördüğümüz kod Update'in bilgisayarınız çökene kadar maksimum hızla çağırılmasına sebep olacaktır.(Recursive function)
Hangi Fonksiyonlar Callback?
Buraya tıklayarak; Unity kılavuzundan MonoBehaviour kısmına gelirseniz, Messages kısmında gösterilen bütün fonksiyonlar callback fonksiyonudur.
Peki Nasıl Çalışıyor? Performansı Nasıl Arttırıyor?
Callback fonksiyonları sadece gerekli olduğunda çalışırlar.
Fırına bir kek koyduğumuzu düşünelim. Bu kekin pişip pişmediğini test etmek için iki yolumuz var.
1-Sürekli olarak kekin pişip pişmediğini kontrol etmek. ( Update(kek); )
2-Fırının kek pişince bize haber vermesi.
Fırın burada fizik motoru veya oyun motorunun kendisi oluyor.
*Callback: Başka bir fonksiyona önce argüman olarak verilip sonra o fonksiyonun iradesinde çağırılan fonksiyona denir.Geri arama anlamına geliyor.
Sitemde oku
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi Al1mert -- 14 Ağustos 2018; 11:20:29 >