Interface de kesinlikle kod yazamıyorsak, OnPointerDown ın kodları nereye yazılıyor. Örneğin mouse tıklama bilgisi (işlemleri) nereden geldi. Bir yerde mouse dinlenip notifikasyon oluşturan kodlar olması gerekmiyor ju?
Onlar Unity Runtime tarafından reflection ile çalıştırılıyor. Unity'nin C++ üzerinde işleyen bir Engine katmanı, bir de .Net Framework (veya platforma göre Mono) üzerinde işleyen bir Script katmanı vardır. Engine katmanı gerek duyduğunda Script katmanı üzerinde bu methodların karşılığını çalıştırıyor. Benzer bir mantık mesela Update veya Start metotlarında da var, onları da override yapmıyoruz, base.Start() veya base.Update() diye base'deki karşılıklarını çağırmıyoruz, fakat dümdüz tetikleniyorlar. Normal C# mantığına göre onların da bu şekilde çalışması imkansız, fakat keramet Reflection denen sistemde. Çok güzel bir soruydu, işin mantığı hakkında derinlemesine düşündüğünüzü gösteriyor. Çok teşekkür ederim.
👍👍👍
Interface de kesinlikle kod yazamıyorsak, OnPointerDown ın kodları nereye yazılıyor. Örneğin mouse tıklama bilgisi (işlemleri) nereden geldi. Bir yerde mouse dinlenip notifikasyon oluşturan kodlar olması gerekmiyor ju?
Onlar Unity Runtime tarafından reflection ile çalıştırılıyor. Unity'nin C++ üzerinde işleyen bir Engine katmanı, bir de .Net Framework (veya platforma göre Mono) üzerinde işleyen bir Script katmanı vardır. Engine katmanı gerek duyduğunda Script katmanı üzerinde bu methodların karşılığını çalıştırıyor. Benzer bir mantık mesela Update veya Start metotlarında da var, onları da override yapmıyoruz, base.Start() veya base.Update() diye base'deki karşılıklarını çağırmıyoruz, fakat dümdüz tetikleniyorlar. Normal C# mantığına göre onların da bu şekilde çalışması imkansız, fakat keramet Reflection denen sistemde.
Çok güzel bir soruydu, işin mantığı hakkında derinlemesine düşündüğünüzü gösteriyor. Çok teşekkür ederim.
Detaylı cevap için teşekkür ederim. Eski bir yazılımcıyım, bir süre başka işler için ara verdim, şimdi unity için c# dan devam ediyorum.