Syntax
Üstün
- Katılım
- 11 Şubat 2024
- Mesajlar
- 1.836
- Çözümler
- 10
- Beğeniler
- 1.844
Inspector Attribute nedir?
Unity'de script yazarken değişkenleri Inspector'da nasıl göstereceğimizi kontrol etmek için kullanılan etiketlerdir. Tanımdan tam ne işe yaradığını anlamamış olabilirsiniz. Örneklerle göstereceğim daha iyi anlayacaksınızdır.
SerializeField
Normalde private değişkenler Inspector'da görünmez. SerializeField sayesinde hem private kalır hem de Inspector'dan ayarlanabilir olur.
Burada 2.değişkende SerializeField kullanmadım bu yüzden gözükmüyor. Private olan diğer iki değişkende SerializeField kullandığım için Inspector'da gözüküyor.
Header
Değişkenleri başlığa göre ayırarak Inspector'ı daha düzenli gösterebilirsiniz.
Public değişkenler normalde Inspector'da gözükür. Fakat HideInInspector kullanırsanız gözükmez.
Bu örnekte HideInInspector kullandığımız değişken gözükmezken diğer ikisi gözüküyor.
Tooltip
Değişkenin üstüne fareyi getirince küçük açıklama kutusu çıkar.
Range
Inspector'da slider ekler.
Space
Inspector'da değişkenler arasında boşluk bırakır.
Bu attributelar basit olanlar ve Inspector'ı düzenli gösterecek attributelar. Bu gösterdiklerimden daha fazlası var. Fakat bunlar Inspector'ın düzenli gözükmesi dışındaki şeylere yarıyor. Hatta kendi attributelarınızı da oluşturabilirsiniz. Daha detaylı attributelar sonraki rehberin konusu olabilir.
Unity'de script yazarken değişkenleri Inspector'da nasıl göstereceğimizi kontrol etmek için kullanılan etiketlerdir. Tanımdan tam ne işe yaradığını anlamamış olabilirsiniz. Örneklerle göstereceğim daha iyi anlayacaksınızdır.
SerializeField
Normalde private değişkenler Inspector'da görünmez. SerializeField sayesinde hem private kalır hem de Inspector'dan ayarlanabilir olur.
Kod:
[Header("Kill Settings")]
[SerializeField] private float raycastMesafe = 10f;
private float runKillerRaycastMesafe = 5f;
[SerializeField] private LayerMask playerLayer = -1; // Default olarak tüm layer'lar
Burada 2.değişkende SerializeField kullanmadım bu yüzden gözükmüyor. Private olan diğer iki değişkende SerializeField kullandığım için Inspector'da gözüküyor.
Header
Değişkenleri başlığa göre ayırarak Inspector'ı daha düzenli gösterebilirsiniz.
C#:
[Header("Kill Settings")]
[SerializeField] private float raycastMesafe = 10f;
private float runKillerRaycastMesafe = 5f;
[SerializeField] private LayerMask playerLayer = -1; // Default olarak tüm layer'lar.
[SerializeField] private float killCooldown = 50f; // Normal kill cooldown.
[SerializeField] private float serialKillerCooldown = 75f; // Serial killer extended cooldown.
[Header("Poison Settings")]
[SerializeField] private float poisonDelay = 7f; // Poison kill delay
HideInInspectorPublic değişkenler normalde Inspector'da gözükür. Fakat HideInInspector kullanırsanız gözükmez.
C#:
public float testVariable;
[HideInInspector] float testDegisken;
public float testTimer;
Bu örnekte HideInInspector kullandığımız değişken gözükmezken diğer ikisi gözüküyor.
Tooltip
Değişkenin üstüne fareyi getirince küçük açıklama kutusu çıkar.
C#:
[Tooltip("Selam, gununuz guzel gecsin!")]
[SerializeField] private LayerMask playerLayer = -1; // Default olarak tüm layer'lar
Range
Inspector'da slider ekler.
C#:
[Range(0, 100)] public float normalKillerChance = 40f;
Space
Inspector'da değişkenler arasında boşluk bırakır.
C#:
[SerializeField] private float killCooldown = 50f; // Normal kill cooldown.
[SerializeField] private float serialKillerCooldown = 75f; // Serial killer extended cooldown.
[Space(50)]
[Header("Poison Settings")]
[SerializeField] private float poisonDelay = 7f; // Poison kill delay
Bu attributelar basit olanlar ve Inspector'ı düzenli gösterecek attributelar. Bu gösterdiklerimden daha fazlası var. Fakat bunlar Inspector'ın düzenli gözükmesi dışındaki şeylere yarıyor. Hatta kendi attributelarınızı da oluşturabilirsiniz. Daha detaylı attributelar sonraki rehberin konusu olabilir.