Unity'de UI Toolkit ile uGUI (Unity UI) arasındaki fark nedir? Hangisini ne zaman seçersiniz?
Cevap
uGUI, GameObject ve Canvas tabanlı klasik UI sistemidir. UI Toolkit ise web'e benzer şekilde UXML (yapı) ve USS (stil) ile çalışan, retained-mode bir sistemdir; önce editör araçları için çıktı, Unity 2021+ ile runtime UI için de kullanılabilir hale geldi.
| uGUI | UI Toolkit | |
|---|---|---|
| Yapı | GameObject + RectTransform | UXML + USS + C# |
| Düzen | Anchor, Layout Group | Flexbox benzeri |
| Performans (büyük UI) | Canvas rebuild maliyeti | Genelde daha verimli |
| World-space UI | Tam destek | Sınırlı (Unity 6'da gelişiyor) |
| Animasyon, shader, particle entegrasyonu | Olgun | Daha kısıtlı |
| Editör araçları | Uygun değil | Önerilen |
| Ekosistem, eğitim | Çok geniş | Büyüyor |
Ne zaman hangisi:
- Editör eklentileri, custom inspector'lar: UI Toolkit.
- Menü ağırlıklı, veri yoğun ekranlar (envanter, ayarlar): UI Toolkit iyi bir seçimdir.
- Dünya içi UI, sağlık barları, yoğun animasyonlu ve efektli HUD: uGUI hâlâ daha pratik.
uGUI performans ipucu: Sık değişen elemanları (sayaçlar) ayrı bir Canvas'a koyun; çünkü bir eleman değiştiğinde tüm Canvas yeniden batch'lenir. Etkileşimsiz görsellerde Raycast Target kapatılmalıdır.
İlgili Unity & C# soruları
- Unity'de Update, FixedUpdate ve LateUpdate arasındaki fark nedir?
- GetComponent çağrılarını neden önbelleğe almalısınız?
- Rigidbody, physics layer'lar ve raycast nasıl çalışır? FixedUpdate neden önemlidir?
- C# delegate, event ve UnityEvent arasındaki farklar nelerdir?
- Unity'de garbage collection neden frame düşüşüne yol açar? Update içinde allocation'dan nasıl kaçınırsınız?
- C#'ta struct ile class arasındaki fark nedir? Value type ve reference type oyunda neden önemlidir?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.