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

Unity'de OnTriggerEnter() Metodu: Tetikleyiciye Giriş ve Çıkış

Paylaşan: Unity Eğitim 13 September 2025 3 dakika okuma 138 görüntülenme

Merhaba Unity geliştiricileri! Bu yazıda, Unity oyun motorunda sıkça kullanılan ve oldukça güçlü bir özellik olan OnTriggerEnter() metodu üzerinde duracağız. Bu metot, bir oyun nesnesinin tetikleyici (trigger) olarak ayarlanmış bir başka nesnenin içine girmesi durumunda çalıştırılır. Oyun mekaniklerinde kapılar, düşmanlar, hasar alanları ve daha birçok etkileşimli öğenin oluşturulmasında temel bir rol oynar.

Tetikleyici (Trigger) Nedir?


Bir tetikleyici, bir Collider bileşeni gibi çalışır, ancak fiziksel olarak nesnelerle etkileşime girmez. Yani, bir nesne bir tetikleyiciye çarptığında, fiziksel itme veya tepki olmaz. Bunun yerine, sadece OnTriggerEnter(), OnTriggerStay() ve OnTriggerExit() gibi tetikleyici olayları tetiklenir.

Tetikleyici Oluşturma


Bir nesneyi tetikleyici olarak ayarlamak için, nesnenize bir Collider bileşeni eklemeniz ve Is Trigger özelliğini aktif etmeniz gerekir. Bu özellik, Inspector penceresinde Collider bileşeninin ayarlarında bulunur.

OnTriggerEnter() Metodu


OnTriggerEnter() metodu, bir tetikleyiciye sahip bir nesne, başka bir tetikleyiciye sahip nesneye girdiğinde çağrılır. Bu metot, girdi yapan nesnenin Collider bileşenine ait Collider nesnesini Collider other parametresi olarak alır. Bu, girdi yapan nesne hakkında bilgi edinmenizi sağlar.

C# Kod Örneği


using UnityEngine;

public class TriggerScript : MonoBehaviour
{
void OnTriggerEnter(Collider other)
{
Debug.Log("Tetikleyiciye girildi: " + other.gameObject.name);
}
}


Bu kod, tetikleyiciye bir nesne girdiğinde konsola bir mesaj yazar. other.gameObject.name ile girdi yapan nesnenin adını alırız.

OnTriggerExit() Metodu


Bir nesne tetikleyiciden çıktığında, OnTriggerExit() metodu çağrılır. Bu metot da Collider other parametresini alır ve bu sayede hangi nesnenin tetikleyiciden çıktığını anlayabilirsiniz.

C# Kod Örneği


void OnTriggerExit(Collider other)
{
Debug.Log("Tetikleyiciden çıkıldı: " + other.gameObject.name);
}

OnTriggerStay() Metodu


Bir nesne tetikleyicinin içinde kaldığı sürece, OnTriggerStay() metodu her FixedUpdate() çağrısında çalışır. Bu, sürekli bir etkileşim için kullanılır. Örneğin, bir oyuncu hasar alanında kaldığı sürece hasar almasını sağlamak için bu metodu kullanabilirsiniz.

C# Kod Örneği


void OnTriggerStay(Collider other)
{
// Tetikleyici içinde kaldığı sürece yapılacak işlemler
}

Örnek Senaryo: Kapı Açma


Bir oyuncu bir kapı tetikleyicisine girdiğinde kapıyı açan bir senaryo düşünelim. Bunun için, kapıya bir Animator bileşeni ekleyip, OnTriggerEnter() metodunda Animator'ün bir animasyonunu tetikleyebiliriz.

C# Kod Örneği


using UnityEngine;

public class KapıAçma : MonoBehaviour
{
public Animator kapıAnim; // Kapı Animator'ünü atayacağımız değişken

void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player")) // Sadece oyuncu girdiğinde çalışır
{
kapıAnim.SetTrigger("Aç"); // Animasyon tetiklenir
}
}
}


Bu örnekte, CompareTag("Player") ile sadece oyuncu nesnesinin tetikleyiciye girdiğinde kapının açılmasını sağladık. Eğer kapının açılması için bir ses efekti de eklemek isterseniz, AudioSource bileşeni ve Play() fonksiyonu kullanılabilir.

İpuçları ve Püf Noktaları



  • Tag'leri kullanın: Farklı nesneleri birbirinden ayırmak için tag'leri kullanın. Bu, kodunuzun daha düzenli ve okunabilir olmasını sağlar.

  • Layer'ları kullanın: Tetikleyicilerin sadece belirli layer'lardaki nesnelerle etkileşime girmesini sağlamak için layer'ları kullanın.

  • Performans: Çok fazla tetikleyici kullanıyorsanız, performans sorunlarıyla karşılaşabilirsiniz. Gerektiğinde tetikleyicileri devre dışı bırakın veya daha verimli yöntemler kullanın.


Umarım bu makale, OnTriggerEnter() metodunun Unity oyun geliştirmede nasıl kullanılacağı konusunda size yardımcı olmuştur. Daha fazla bilgi için Unity dokümantasyonuna göz atabilir ve örnek projeler inceleyebilirsiniz.

 

🧠 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!