Custom inspector
- Oyun Geliştirme kursu
- Uzman
- Ders 34/47
- 4 dk
Özel Inspector yazmak için Editor sınıfını öğrenirsin.
CustomEditor Niteliği ve Editor Sınıfı
Bir bileşenin Inspector panelindeki varsayılan görünümünü özelleştirmek için [CustomEditor(typeof(HedefBilesen))] niteliğine sahip ve Editor sınıfından türeyen bir sınıf yazılır. Bu sayede bileşen alanları renklendirilebilir veya özel butonlar eklenebilir.
[CustomEditor(typeof(Karakter))]
public class KarakterEditor : Editor
{
// Karakter bileşeni için özel inspector
}OnInspectorGUI ile Arayüzü Çizme
Özel Inspector arayüzü OnInspectorGUI() metodu içinde kodlanır. Varsayılan değişken alanlarını koruyarak altına özel buton veya uyarı eklemek için DrawDefaultInspector() çağrısı kullanılır.
public override void OnInspectorGUI()
{
DrawDefaultInspector();
if (GUILayout.Button("Can Doldur")) { /* Eylem */ }
}Uygulama Inspector Buton Eylemini Tetikle
if (butonBasildi) doğruysa Debug.Log("Inspector butonu tiklandi"); yazdır.
Başlangıç kodu
using System;
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void OnInspectorGUI(bool butonBasildi)
{
// Buton basildiysa mesaj yazdir
}
public static void Main()
{
OnInspectorGUI(true);
}
}Örnek çözüm
using System;
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void OnInspectorGUI(bool butonBasildi)
{
if (butonBasildi)
{
Debug.Log("Inspector butonu tiklandi");
}
}
public static void Main()
{
OnInspectorGUI(true);
}
}Beklenen çıktı
Inspector butonu tiklandi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir editör sınıfının hangi bileşeni özelleştireceğini Unity'ye bildirmek için sınıfın üzerine hangi nitelik eklenir?
- [RequireComponent]
- [InspectorTool]
- [CustomEditor] Doğru cevap
- [AddComponentMenu]
Açıklama: [CustomEditor(typeof(Bilesen))] niteliği, editör sınıfının hedef bileşen ile eşleşmesini sağlar.
2 OnInspectorGUI Metodunu Ez
public override void ____() {}
public override void OnInspectorGUI() {}
Açıklama: Inspector arayüzünü özelleştirmek için Editor sınıfının OnInspectorGUI metodu ezilir (override).
3 Inspector Özelleştirme Terimleri
| Kavram | Anlamı |
|---|---|
CustomEditor |
Editörü bir bileşene bağlayan nitelik |
OnInspectorGUI |
Inspector çiziminin yapıldığı ana metot |
DrawDefaultInspector |
Varsayılan alanları çizen metot |
target |
Düzenlenen hedef bileşenin referansı |