Masuk dan Keluar
Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 19 dari 63.
Sebuah trigger mengirim dua pesan lagi. OnTriggerExit(Collider other) berjalan satu kali, pada langkah fisika saat tumpang tindih berakhir, apa pun penyebabnya. OnTriggerStay(Collider other) berjalan pada setiap langkah fisika selama tumpang tindih berlangsung, 50 kali per detik secara default, seperti FixedUpdate(). Ketiganya menerima Collider yang sama.
Arus naik ini mengangkat apa pun yang mengapung di dalamnya dan melaporkan saat benda itu keluar:
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");
}Gaya harus diterapkan dalam langkah fisika, jadi OnTriggerStay cocok untuk itu: dorongan diterapkan sekali setiap langkah selama bola berada di dalam, lalu berhenti saat bola keluar. Arus naik ini tidak memiliki Rigidbody, jadi setiap benda yang memasukinya harus memilikinya, dan attachedRigidbody tidak pernah null di sini. Untuk menerapkan gaya per detik di dalam OnTriggerStay, kalikan dengan Time.deltaTime, yang selama langkah fisika adalah durasi langkah tersebut, yaitu 0.02. Setiap benda yang masuk memicu satu OnTriggerEnter, lalu satu OnTriggerExit untuk collider yang sama.
Tantangan
MudahArea kuning yang dicat di lantai gudang adalah trigger, dan lamp adalah lampu peringatan pada tiang di sebelahnya. Tulis LoadingBay agar lampu menunjukkan apakah ada sesuatu di area itu:
- Saat game dimulai, area itu kosong, jadi lampunya mati (
lamp.enabled = false). - Selama setidaknya ada satu object di area itu, lampunya menyala.
- Saat object terakhir keluar, lampunya mati lagi.
Dua peti dan pemain bisa berada di area itu secara bersamaan, jadi keluarnya satu object bukan berarti area itu kosong. Tekan Play dan dorong peti masuk dan keluar dengan tombol panah, lalu tekan Check.
Coba sendiri
using UnityEngine;
public class LoadingBay : MonoBehaviour
{
public Light lamp;
// Lampu menyala selama ada sesuatu di ruang muat, dan padam saat ruang muat kosong
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Fisika dan Gameplay
1Rigidbody
Gravitasi dan MassaDorong dengan AddForceMelompat dengan ImpulsFixedUpdate untuk FisikaKecepatanBenda KinematikRingkasan: Landasan Peluncur2Tabrakan
OnCollisionEnterApa yang Kutabrak?Pecah Saat BenturanBerdiri di Atas TanahPantulan dan GesekanBentuk ColliderRangkuman: Dinding yang Bisa Hancur