Trigger olayları
- Oyun Geliştirme kursu
- Başlangıç
- Ders 53/83
- 4 dk
IsTrigger ile OnTriggerEnter ve tetikleyici alanları öğrenirsin.
Trigger (Tetikleyici) olayları
Collider üzerindeki Is Trigger onay kutusu işaretlendiğinde nesne katı fiziksel engel özelliğini kaybeder. Diğer nesneler bu hacmin içinden engellenmeden geçer ancak temas yazılımsal olarak algılanır.
// Collider'ı tetikleyiciye çevirme
Collider col = GetComponent<Collider>();
col.isTrigger = true;Altın toplama, kontrol noktası (checkpoint) veya kapı açma dedektörleri tipik olarak Trigger şeklinde tasarlanır.
OnTriggerEnter ve Parametre Farkı
Tetikleyici bir alana girildiğinde OnTriggerEnter(Collider other) çalışır. Bu metot OnCollisionEnter'dan farklı olarak Collision yerine doğrudan giren nesnenin Collider referansını parametre alır.
void OnTriggerEnter(Collider other) {
if (other.CompareTag("Player")) {
Debug.Log("Ödül toplandı!");
}
}Nesne alandan ayrıldığında ise OnTriggerExit(Collider other) geri çağrımı tetiklenir.
Uygulama Tetikleyici durumunu yazdır
triggerType değişkenine "OnTriggerEnter" ve zoneName değişkenine "Checkpoint" değerini ata. Ekrana Trigger: OnTriggerEnter | Zone: Checkpoint yazdır.
Başlangıç kodu
using System;
class Program
{
static void Main()
{
// triggerType ve zoneName değerlerini tanımlayıp yazdır
}
}Örnek çözüm
using System;
class Program
{
static void Main()
{
string triggerType = "OnTriggerEnter";
string zoneName = "Checkpoint";
Console.WriteLine("Trigger: " + triggerType + " | Zone: " + zoneName);
}
}Beklenen çıktı
Trigger: OnTriggerEnter | Zone: Checkpoint
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Toplanabilir bir nesne (ör. coin) oluştururken Collider neden 'Is Trigger' olarak ayarlanır?
- Oyuncunun nesnenin içinden geçebilmesi ve temasın algılanması için Doğru cevap
- Yer çekimini iki katına çıkarıp nesneyi yere çivilemek için
- Sahnedeki tüm ses kaynaklarını durdurup oyunu dondurmak için
- Nesnenin materyal ve gölge hesaplamasını tamamen kapatmak için
Açıklama: Is Trigger, nesnenin fiziksel olarak çarpmayıp içinden geçilmesine izin verirken temas olayını algılar.
2 IsTrigger özelliğini ayarla
collider.____ = true;
collider.isTrigger = true;
Açıklama: Bir Collider'ı tetikleyici yapmak için isTrigger özelliği true değerine eşitlenir.
3 Trigger terimleri
| Kavram | Anlamı |
|---|---|
Is Trigger |
Collider'ı algılama alanına çevirir |
OnTriggerEnter |
Tetikleyiciye girişte çalışır |
OnTriggerExit |
Tetikleyiciden çıkışta tetiklenir |
Collider other |
Giren nesnenin çarpışma bileşeni |