Unity Eğitim
Dersler
Forum Sınav Merkezi Premium 💎
C# Dersleri

Unity'de EditorGUILayout.EnumPopup() Kullanımı: Enum Değerlerini Görsel Olarak Düzenleyin

Paylaşan: Unity Eğitim 11 September 2025 4 dakika okuma 107 görüntülenme

Merhaba Unity geliştiricileri! Bu yazıda, Unity editöründe enum değerlerini düzenlemek için kullanılan güçlü bir araç olan EditorGUILayout.EnumPopup() fonksiyonunu inceleyeceğiz. Enum'lar (enumerations), kodunuzda okunabilirliği ve bakımı artırmak için kullanılan isimli sabitlerden oluşan bir veri tipidir. EditorGUILayout.EnumPopup(), bu enum değerlerini kullanıcı dostu bir açılır menü (popup) şeklinde sunarak, editörünüzde doğrudan enum değerlerini seçmenizi sağlar.

Enum'lar ve Unity


Öncelikle, enum'ların ne olduğunu ve neden kullanıldıklarını kısaca hatırlayalım. Bir enum, belirli bir sayıda isimli sabitin tanımlanmasıyla oluşturulur. Örneğin, bir oyun karakterinin durumunu temsil etmek için bir enum kullanabiliriz:

public enum CharacterState
{
Idle,
Running,
Jumping,
Attacking
}

Bu enum, Idle, Running, Jumping ve Attacking adlı dört sabit tanımlar. Bu sabitler, kodunuzda karakterin durumunu temsil etmek için kullanılabilir. Enum'lar, kodunuzun daha okunabilir ve daha az hata yapmaya müsait olmasını sağlar.

EditorGUILayout.EnumPopup() Fonksiyonu


EditorGUILayout.EnumPopup() fonksiyonu, Unity editöründe bir enum değerini seçmek için görsel bir arayüz sağlar. Bu fonksiyon, bir enum değişkenini ve isteğe bağlı olarak bir etiket alır. Fonksiyon, seçilen enum değerini döndürür.

public CharacterState characterState;

public void OnInspectorGUI()
{
characterState = (CharacterState)EditorGUILayout.EnumPopup("Character State", characterState);
}


Bu kod, characterState adlı bir CharacterState enum değişkenini temsil eden bir açılır menü oluşturur. "Character State" metni, menünün etiketini oluşturur. Kullanıcı bu menüden bir değer seçtiğinde, characterState değişkeni otomatik olarak güncellenir.

Özelleştirmeler


EditorGUILayout.EnumPopup() fonksiyonu, bazı özelleştirme seçenekleri sunar. Örneğin, enum değerlerinin gösterimini özelleştirebilirsiniz. Bunun için, enum değerlerinin adlarını değiştirmeniz veya özel bir gösterim yöntemi kullanmanız gerekir. Aşağıda, özel bir gösterim yöntemi kullanan bir örnek verilmiştir:

public enum WeaponType
{
Sword,
Bow,
Staff
}

[CustomPropertyDrawer(typeof(WeaponType))]
public class WeaponTypeDrawer : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
var enumValue = property.enumValueIndex;
var newEnumValue = EditorGUI.Popup(position, label, enumValue, GetWeaponTypeNames());
property.enumValueIndex = newEnumValue;
EditorGUI.EndProperty();
}

private string[] GetWeaponTypeNames()
{
return System.Enum.GetNames(typeof(WeaponType));
}
}


Bu örnekte, CustomPropertyDrawer özelliği kullanılarak WeaponType enum'unun gösterimi özelleştirilmiştir. GetWeaponTypeNames() fonksiyonu, enum değerlerinin adlarını bir dizi olarak döndürür. EditorGUI.Popup() fonksiyonu, bu diziyi kullanarak bir açılır menü oluşturur.

Örnek Senaryo: Oyuncu Hareketleri


Şimdi, EditorGUILayout.EnumPopup() fonksiyonunu kullanarak bir oyun karakterinin hareketlerini kontrol eden bir örnek oluşturalım. Karakterin hareket durumunu temsil eden bir enum tanımlayalım:

public enum PlayerMovementState
{
Idle,
Walking,
Running,
Jumping
}

Ardından, bu enum'u kullanarak bir script oluşturalım:

using UnityEngine;

public class PlayerController : MonoBehaviour
{
public PlayerMovementState movementState;

private void OnGUI()
{
movementState = (PlayerMovementState)EditorGUILayout.EnumPopup("Movement State", movementState);
}
}


Bu script, movementState adlı bir PlayerMovementState enum değişkenini tanımlar ve EditorGUILayout.EnumPopup() fonksiyonunu kullanarak bu değişkeni düzenler. Bu sayede, Unity editöründe karakterin hareket durumunu kolayca değiştirebilirsiniz.

Sonuç


EditorGUILayout.EnumPopup() fonksiyonu, Unity editöründe enum değerlerini düzenlemek için oldukça kullanışlı bir araçtır. Bu fonksiyon, kodunuzun okunabilirliğini ve bakımını artırmanıza yardımcı olur. Ayrıca, özelleştirme seçenekleri sayesinde, enum değerlerinin gösterimini kendi ihtiyaçlarınıza göre uyarlayabilirsiniz. Umarım bu yazı, EditorGUILayout.EnumPopup() fonksiyonunu anlamanıza ve kullanmanıza yardımcı olmuştur.

🧠 Ders Sonu Değerlendirme Testi

Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.

🔥 +50 XP Ödül
🔒

Sınava Katılmak İçin Giriş Yapın

Bu ders sonu testini çözebilmek, bilginizi test edip **+50 XP** kazanmak ve **Sınav Şampiyonu** rozetinin kilidini açmak için üye girişi yapmalısınız.

Yorumlar (0)

Yorum yazabilmek ve derslere katkıda bulunabilmek için giriş yapmalısınız.

İlk yorumu siz yapın!