Giriş ve Çıkış
Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 20 / 71.
Tetikleyici iki mesaj daha gönderir. OnTriggerExit(Collider other), çakışma nasıl sona ererse ersin, çakışma sona erdiği fizik adımında bir kez çalışır. OnTriggerStay(Collider other), çakışma devam ettiği sürece varsayılan olarak saniyede 50 kez, FixedUpdate() gibi her fizik adımında çalışır. Üçü de aynı Collider değerini alır.
Bu yükselen hava akımı, içinde yüzen her şeyi yukarı kaldırır ve içinden çıktığında bunu bildirir:
public float lift = 15f;
void OnTriggerStay(Collider other)
{
other.attachedRigidbody.AddForce(Vector3.up * lift);
}
void OnTriggerExit(Collider other)
{
Debug.Log(other.name + " left the updraft");
}Kuvvet bir fizik adımında uygulanmalıdır, bu nedenle OnTriggerStay bu iş için uygundur: top içeride kaldığı sürece itme her adımda bir kez uygulanır ve top çıkar çıkmaz durur. Yükselen hava akımının Rigidbody bileşeni yoktur; bu nedenle içeri giren her nesnenin bir Rigidbody bileşeni olmalıdır ve burada attachedRigidbody hiçbir zaman null olmaz. OnTriggerStay içinde saniyelik bir miktar uygulamak için Time.deltaTime ile çarpın; bu değer fizik adımı sırasında adımın uzunluğudur: 0.02. Her girişte aynı çarpıştırıcı için bir OnTriggerEnter ve daha sonra bir OnTriggerExit çağrısı gerçekleşir.
Görev
KolayYükleme alanında herhangi bir şey varken lambayı yak.
- Bir
int inBay;alanı ekle.Start()içindelamp.enabled = false;olarak ayarla. OnTriggerEnteriçindeinBaydeğerini 1 artır velamp.enabled = true;olarak ayarla.OnTriggerExitiçindeinBaydeğerini 1 azalt ve lambayı yalnızca değer 0 olduğunda kapat.
“Oyna” düğmesine bas ve kasaları içeri ve dışarı it: alan boşalana kadar lamba yanık kalır. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
public class LoadingBay : MonoBehaviour
{
public Light lamp;
// Bölmede herhangi bir şey varken lamba yanar, bölme boşken söner
}
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 DuvarKendi başına pratik yap: Unity playground