Unity’de Özel Editor’lar Oluşturma: CustomEditor Attribute

Unity oyun motorunda CustomEditor attribute kullanarak özelleştirilmiş inspector pencereleri oluşturmayı öğrenin. Özel editörler ile oyun geliştirme sürecinizi hızlandırın ve verimliliğinizi artırın. Detaylı rehber ve örneklerle Unity CustomEditor'ı keşfedin.

Unity oyun motorunda, varsayılan inspector pencerelerini özelleştirerek geliştirme sürecini daha verimli ve kullanıcı dostu hale getirebilirsiniz. Bunun için CustomEditor attribute’ünden yararlanarak, özel inspector’lar oluşturabilirsiniz. Bu makalede, CustomEditor attribute’ünün nasıl kullanılacağını, farklı özelliklerini ve örneklerini detaylı bir şekilde inceleyeceğiz.

CustomEditor Attribute Nedir?

CustomEditor attribute’ü, Unity’de bir Scriptable Object, MonoBehaviour veya diğer herhangi bir sınıf için özel bir inspector penceresi oluşturmanıza olanak tanır. Varsayılan inspector’ün sınırlı özelliklerini aşarak, daha görsel, daha işlevsel ve daha özelleştirilmiş bir düzenleme deneyimi sunar. Bu, özellikle karmaşık verileri düzenlerken veya özel bileşenler oluştururken oldukça faydalıdır.

CustomEditor Nasıl Kullanılır?

Bir CustomEditor oluşturmak için, öncelikle düzenlemek istediğiniz sınıf için bir editor sınıfı oluşturmanız gerekir. Bu editor sınıfı, UnityEditor namespace’i altında bulunmalıdır. Ardından, bu editor sınıfına CustomEditor attribute’ünü ekleyerek, hangi sınıf için özel bir inspector oluşturduğunuzu belirtirsiniz.

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(MyCustomClass))]
public class MyCustomClassEditor : Editor
{
    public override void OnInspectorGUI()
    {
        // Özelleştirilmiş inspector içeriği burada yazılır
        MyCustomClass myScript = (MyCustomClass)target;
        myScript.myVariable = EditorGUILayout.FloatField("My Variable", myScript.myVariable);
    }
}

public class MyCustomClass : MonoBehaviour
{
    public float myVariable;
}

Yukarıdaki örnekte, MyCustomClass isimli bir sınıf için MyCustomClassEditor isimli bir CustomEditor oluşturduk. OnInspectorGUI() fonksiyonu, inspector penceresinin içeriğini oluşturmamızı sağlar. Bu fonksiyon içinde, EditorGUILayout sınıfının fonksiyonlarını kullanarak, istediğimiz gibi düzenleme alanları ekleyebiliriz.

CustomEditor’ün Önemli Özellikleri

1. OnInspectorGUI() Metodu

OnInspectorGUI() metodu, inspector penceresinin içeriğini oluşturmak için kullanılan en önemli metottur. Bu metod içinde, EditorGUILayout sınıfının çeşitli fonksiyonlarını kullanarak, farklı türdeki değişkenleri düzenlemek için alanlar oluşturabilirsiniz. Örneğin, EditorGUILayout.FloatField(), EditorGUILayout.IntField(), EditorGUILayout.TextField(), EditorGUILayout.Vector3Field() gibi fonksiyonlar kullanılabilir.

2. target Özelliği

target özelliği, CustomEditor’ün bağlı olduğu sınıfın örneğini temsil eder. Bu özellik sayesinde, sınıfın değişkenlerine erişebilir ve değerlerini değiştirebilirsiniz.

3. SerializedProperty

Karmaşık verileri düzenlemek için SerializedProperty kullanmak daha verimlidir. SerializedProperty, sınıfın seri hale getirilebilir özelliklerine erişim sağlar ve inspector’da daha iyi bir düzenleme deneyimi sunar. Aşağıdaki örnekte, SerializedProperty kullanımı gösterilmektedir:

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(MyCustomClass))]
public class MyCustomClassEditor : Editor
{
    public override void OnInspectorGUI()
    {
        SerializedProperty myVariableProp = serializedObject.FindProperty("myVariable");
        EditorGUILayout.PropertyField(myVariableProp);
        serializedObject.ApplyModifiedProperties();
    }
}

4. DrawDefaultInspector() Metodu

DrawDefaultInspector() metodu, varsayılan inspector’ün içeriğini görüntülemenizi sağlar. CustomEditor’ünüzde hem özelleştirilmiş alanlar hem de varsayılan inspector’ün içeriğini görüntülemek istiyorsanız, bu metodu kullanabilirsiniz.

Örnekler ve İleri Düzey Kullanımlar

 

Bu kısımda, daha detaylı örnekler ve ileri düzey CustomEditor teknikleri ele alınacaktır. Örneğin, özel düğmeler ekleme, özel renk seçiciler oluşturma, veya farklı düzenleme kontrol elementleri kullanma gibi konular incelenecektir. Ayrıca, CustomEditor’ler ile farklı Unity editör pencerelerini özelleştirme yöntemleri de gösterilecektir.

Sonuç

CustomEditor attribute’ü, Unity’de geliştirme sürecini önemli ölçüde iyileştirmenize yardımcı olan güçlü bir araçtır. Bu makalede ele aldığımız temel kavramlar ve örnekler ile, kendi özel inspector’larınızı oluşturmaya başlayabilirsiniz. Daha fazla bilgi ve ileri düzey teknikler için Unity dokümanlarını ve çevrimiçi kaynakları inceleyebilirsiniz.