CodeBlanks Logo Icon CodeBlanks

Custom inspector

Ö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

Player.cs
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

Player.cs
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

Soru
public override void ____() {}
Cevap
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ı

Uzman bölümündeki tüm dersler