Tag ve Layer
- Oyun Geliştirme kursu
- Başlangıç
- Ders 23/83
- 4 dk
Tag ve Layer kavramlarını, çarpışma filtrelemede rollerini öğrenirsin.
Tag (Etiket) kavramı
Tag, sahnedeki GameObject'leri tanımlamak ve gruplamak için kullanılan bir kelime etiketidir. Örneğin ana karaktere "Player", düşmanlara "Enemy" etiketi verilir.
// Nesnenin etiketini güvenli şekilde kontrol etme
if (collision.gameObject.CompareTag("Enemy")) {
Console.WriteLine("Düşman tespit edildi!");
}Kod tarafında CompareTag metodu, doğrudan metin eşleştirmesinden çok daha hızlı ve bellek dostu bir yöntemdir.
Layer (Katman) kavramı
Layer'lar (katmanlar), nesneleri fizik çarpışmaları veya kamera çizimleri için filtrelemeye yarar. Örneğin Layer Collision Matrix tablosunda mermilerin mermilerle çarpışmasını engelleyebilirsiniz.
// Layer Mask ile belirli katmanları filtreleme
int uiLayer = LayerMask.NameToLayer("UI");Kısaca: Tag nesneleri tekil veya mantıksal olarak tanımak için, Layer ise fizik ve kamera işlemlerini gruplamak için kullanılır.
Uygulama Tag ve Layer bilgisini yazdır
tag değişkenine "Player", layer değişkenine "Default" ata. Ekrana Tag: Player | Layer: Default yazdır.
Başlangıç kodu
using System;
class Program
{
static void Main()
{
// tag ve layer değerlerini tanımlayıp yazdır
}
}Örnek çözüm
using System;
class Program
{
static void Main()
{
string tag = "Player";
string layer = "Default";
Console.WriteLine("Tag: " + tag + " | Layer: " + layer);
}
}Beklenen çıktı
Tag: Player | Layer: Default
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kod içinde bir GameObject'in etiketini kontrol etmenin en performanslı ve önerilen yolu nedir?
- gameObject.CompareTag("Player") çağırmak Doğru cevap
- Tüm bileşenleri silip yeniden yüklemek
- Sahnedeki tüm nesneleri döngüyle yeniden oluşturmak
- Nesneyi Hierarchy panelinde fareyle aramak
Açıklama: CompareTag metodu dahili string tahsisi yapmadan etiket kontrolü sağladığı için en verimli yaklaşımdır.
2 Etiket kontrolü yap
if (target.____("Player"))
if (target.CompareTag("Player"))
Açıklama: Unity'de nesne etiketini doğrulamak için CompareTag fonksiyonu kullanılır.
3 Tag ve Layer farkları
| Kavram | Anlamı |
|---|---|
Tag |
Nesneleri mantıksal adlandırma etiketi |
Layer |
Fizik ve kamera filtreleme katmanı |
CompareTag |
Performanslı etiket karşılaştırma metodu |
Collision Matrix |
Çarpışan katmanları belirleyen matris |