Unity’de Attributes (Öznitelikler), kod üzerinde belirli özellikler veya davranışlar eklemek için kullanılan özel işaretçilerdir. Aşağıda, Unity’de sık kullanılan bazı Attributes’lere örnekler verilmiştir:
- Header
- Space
- Tooltip
- Range
- TextArea
- Multiline
- SerializeField
- HideInInspector
- ContextMenuItem
- ContextMenu
- HelpURL
- RequireComponent
- AddComponentMenu
- ExecuteInEditMode
[SerializeField]: Bu öznitelik, private bir değişkeni Unity Editor’da görüntüleyebilmemizi sağlar. Yani, Inspector panelinde görünür hale getirir. Örneğin:
public class MyScript : MonoBehaviour
{
[SerializeField] private int myNumber;
}
[Space]: Bu öznitelik inspectorde class elemanları arasında boşluk bırakmaya olanak tanır. Örneğin:
public class MyScript : MonoBehaviour
{
public float value1;
[Space(10)]
public string name;
}
[TextArea(minLine,maxLine)]: Bu öznitelik bir metin değişkeninin Editör içinde daha büyük bir alanda düzenlenmesini sağlar. Bu özellik, özellikle çok uzun metinlerin düzenlenmesi gerektiğinde kullanışlıdır. Min ve max satır sayısını vermeden de kullanabilirsiniz.
public class Example : MonoBehaviour
{
[TextArea]
public string description;
}
[HelpURL]: Bu özniteliği, bir bileşen veya senaryo için belirli bir URL’ye bağlantı oluşturur. Bu özellik, Unity Editörü’nde “Help” düğmesine tıklanarak, belirli bir sayfaya doğrudan yönlendirme yapılmasını sağlar. Bu sayede kullanıcılar, belgeleme, forum sayfaları, video öğreticileri vb. gibi farklı kaynaklara kolayca erişebilirler.
[HelpURL("https://docs.unity3d.com/ScriptReference/Component.html")]
public class Example : MonoBehaviour
{
// ...
}
[Range]: Bu öznitelik, bir değişkenin aldığı değer aralığını belirlememize olanak tanır. Örneğin:
public class MyScript : MonoBehaviour
{
[Range(0f, 1f)]
public float myValue;
}
Bu örnekte, myValue değişkeni sadece 0-1 arasındaki değerleri alabilir
[Header]: Bu öznitelik, Inspector panelindeki özelliklerin başlıklar ile gruplandırılmasını sağlar. Örneğin:
public class MyScript : MonoBehaviour
{
[Header("Settings")]
public float myFloat;
[Header("Colors")]
public Color myColor;
}
[ExecuteInEditMode]: Bu öznitelik, bir komut dosyasının editör modunda çalışmasına izin verir. Örneğin:
[ExecuteInEditMode]
public class MyScript : MonoBehaviour
{
// ...
}
Bu örnekte, MyScript komut dosyası, editör modunda çalışırken değişiklikleri yansıtacaktır.
[RequireComponent]: Bu öznitelik, bir bileşene bağlı olarak başka bileşenlerin de otomatik olarak eklenmesini sağlar. Örneğin:
[RequireComponent(typeof(Rigidbody))]
public class MyScript : MonoBehaviour
{
// ...
}
Bu örnekte, MyScript bileşeni eklenirken, aynı GameObject üzerinde bir Rigidbody bileşeni de otomatik olarak eklenir.
[HideInInspector]: Bu öznitelik, Inspector panelinde bir değişkenin görünürlüğünü gizler. Örneğin:
public class MyScript : MonoBehaviour
{
[HideInInspector]
public int myNumber;
}
Bu örnekte, myNumber değişkeni Inspector panelinde görünmez hale getirilir.
[DisallowMultipleComponent]: Bu öznitelik, aynı bileşenin birden fazla örneğinin oluşturulmasını engeller. Örneğin:
[DisallowMultipleComponent]
public class MyScript : MonoBehaviour
{
// ...
}
Bu örnekte, aynı GameObject üzerinde birden fazla MyScript bileşeni eklenemez.
[ContextMenu]: Bu öznitelik, bir fonksiyona sağ tık menüsünden erişilebilir bir öğe ekler. Örneğin:
public class MyScript : MonoBehaviour
{
[ContextMenu("Say Hello")]
public void SayHello()
{
Debug.Log("Hello!");
}
}
Bu örnekte, SayHello() fonksiyonuna sağ tık menüsünde “Say Hello” öğesi eklenecektir.
[RequireComponent(typeof())]: Bu öznitelik, bir bileşene bağımlı olan diğer bileşenlerin otomatik olarak eklenmesini sağlar. Örneğin:
[RequireComponent(typeof(Rigidbody), typeof(AudioSource))]
public class MyScript : MonoBehaviour
{
// ...
}
Bu örnekte, MyScript bileşeni eklenirken, aynı GameObject üzerinde bir Rigidbody bileşeni ve bir AudioSource bileşeni otomatik olarak eklenir.