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.
Görev
KolayAraç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:
Caretiketi taşıyan her araçtoll(3) öder: bunucollecteddeğişkenine ekle ve toplamı kaydet; ilk araba içinToll: 3, ardındanToll: 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
}
}
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
1Rigidbody
Yerçekimi ve KütleAddForce ile İtmeDürtüyle ZıplamaFizik için FixedUpdateHızKinematik CisimlerTekrar: Fırlatma Rampası2Çarpışmalar
OnCollisionEnterNeye Çarptım?Çarpınca KırılYerde DurmakSekme ve SürtünmeCollider ŞekilleriTekrar: Kırılabilir Duvar