Menu
CoddyTech

OnTriggerEnter

Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 16 / 63.

void OnTriggerEnter(Collider other) bir kez, başka bir collider bir trigger ile çakışmaya başladığı fizik adımında çalışır. other bu collider'dır; bu nedenle other.name, other.gameObject ve other.CompareTag("Player") neyin içeri girdiğini söyler. Unity bunu her iki nesnenin de betiklerinde çağırır: trigger üzerinde other ziyaretçidir, ziyaretçi üzerinde ise other trigger'dır.

Bu bitiş çizgisi oyuncuya tepki verir, başka hiçbir şeye vermez; bu yüzden üzerinden yuvarlanarak geçen bir top hiçbir şey kaydetmez:

void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Player"))
    {
        Debug.Log(other.name + " crossed the finish line");
    }
}

Parametre bir Collider olmalıdır. void OnTriggerEnter(Collision collision) şeklinde yazıldığında betik yine derlenir, çünkü C# için bu sıradan bir metottur. Unity parametrenin kendisini denetler, This message parameter has to be of type: Collider diyen bir Script error: OnTriggerEnter kaydeder ve metodu hiçbir zaman çağırmaz. Collision, iki katı cismin bir temas noktasında buluştuğu OnCollisionEnter için kullanılır. Bir trigger'ın bildireceği bir teması yoktur, yalnızca collider'ı vardır; bu yüzden ona bir Collider verilir.

challenge icon

Görev

Kolay

Araçlar bir tetikleyici olan geçiş kapısından geçer. Driver betiği onları hareket ettirir ve tamamlanmıştır. Kapının TollGate betiğini yaz:

  • Car etiketi taşıyan her araç toll (3) öder: bunu collected değişkenine ekle ve toplamı kaydet; ilk araba için Toll: 3, ardından Toll: 6.
  • Cyclist gibi diğer her şey ücretsiz geçer ve hiçbir şey kaydetmez.

Önce Play'e bas: Console'da yöntemle ilgili, yazıldığı hâliyle bir betik hatası zaten görünüyor. Hatayı düzelt, ardından Check'e bas.

Kendin dene

using UnityEngine;

public class TollGate : MonoBehaviour
{
    public int toll = 3;
    int collected;

    void OnTriggerEnter(Collision collision)
    {
        // Arabalar geçiş ücreti öder; diğer her şey ücretsiz geçer
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Fizik ve Oynanış bölümündeki tüm dersler