Collider Pemicu
Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 15 dari 63.
Collider dengan Is Trigger yang dicentang tidak lagi padat: rigidbody melewatinya begitu saja, dan Unity melaporkan tumpang tindih tersebut, dengan memanggil OnTriggerEnter pada skrip kedua object. Garis finis, barang yang bisa diambil, dan zona bahaya menggunakan trigger. Dalam kode, kotak tersebut adalah property isTrigger milik collider.
Zona alarm di brankas ini mengubah collider-nya menjadi trigger saat game dimulai, sama seperti mencentang kotak, dan membunyikan alarm saat penjaga masuk:
void Start()
{
GetComponent<Collider>().isTrigger = true;
}
void OnTriggerEnter(Collider other)
{
Debug.Log("Alarm!");
}Trigger mengikuti aturan yang sama seperti tabrakan: Unity hanya memeriksa sepasang object jika setidaknya salah satu dari keduanya memiliki Rigidbody. Dua object tanpa Rigidbody tidak akan pernah melaporkan keberadaan satu sama lain, baik menggunakan trigger maupun tidak. Penjaga berpatroli menggunakan skrip, jadi setiap penjaga memiliki Rigidbody kinematik (Add Component, Rigidbody, Is Kinematic dicentang): gravitasi dan benturan tidak memengaruhinya, dan Rigidbody tersebut tetap dihitung sebagai Rigidbody. Tanpa Rigidbody pada penjaga, penjaga akan berjalan melewati zona dan Console tetap kosong. Tanpa isTrigger, zona menjadi kotak padat, dan benda kinematik tidak pernah menyentuh collider yang tidak memiliki Rigidbody, jadi tetap tidak ada yang tercatat. Satu Rigidbody dalam pasangan sudah cukup, pada object mana pun. Pelajaran berikutnya membahas other, collider yang memasuki zona.
Tantangan
MudahDrone harus terbang mengikuti rute melewati tiga ring, dan setiap Ring harus mencatat namanya dan passed saat drone melewatinya, misalnya Ring1 passed. Belum ada yang berfungsi: skrip drone membuatnya terbang dengan MovePosition, tetapi tidak ada Rigidbody di scene, dan ring-ringnya solid.
- Di
Drone.cs, tambahkan Rigidbody pada drone saat game dimulai dan simpan dibody. Drone harus terbang mendatar mengikuti rutenya. Satu Rigidbody pada drone cukup untuk melewati ketiga ring. - Di
Ring.cs, jadikan collider setiap ring sebagai trigger saat game dimulai.
Tekan Play dan perhatikan Console, lalu tekan Check.
Coba sendiri
using UnityEngine;
public class Ring : MonoBehaviour
{
void Start()
{
// Jadikan collider cincin ini sebagai trigger
}
void OnTriggerEnter(Collider other)
{
Debug.Log(name + " passed");
}
}
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