CodeBlanks Logo Icon CodeBlanks

Tag ve Layer

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

Player.cs
using System;

class Program
{
    static void Main()
    {
        // tag ve layer değerlerini tanımlayıp yazdır
    }
}

Örnek çözüm

Player.cs
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

Soru
if (target.____("Player"))
Cevap
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

Başlangıç bölümündeki tüm dersler