Menu
CoddyTech

OnTriggerEnter

Termasuk bagian Fisika dan Gameplay dalam perjalanan Unity di Coddy. Pelajaran 16 dari 63.

void OnTriggerEnter(Collider other) dijalankan satu kali pada langkah fisika saat collider lain mulai bertumpang tindih dengan sebuah trigger. other adalah collider tersebut, jadi other.name, other.gameObject, dan other.CompareTag("Player") memberi tahu kamu objek apa yang masuk. Unity memanggilnya pada script kedua objek: pada trigger, other adalah objek yang datang, dan pada objek yang datang, other adalah trigger.

Garis finis ini bereaksi terhadap pemain saja, jadi bola yang menggelinding melewatinya tidak mencatat apa pun:

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

Parameternya harus berupa Collider. Jika ditulis sebagai void OnTriggerEnter(Collision collision), script tetap berhasil dikompilasi karena bagi C# itu adalah method biasa. Unity memeriksa parameternya, mencatat Script error: OnTriggerEnter yang menyatakan This message parameter has to be of type: Collider, lalu tidak pernah memanggil method tersebut. Collision digunakan oleh OnCollisionEnter, saat dua benda padat bertemu pada titik kontak. Trigger tidak memiliki kontak untuk dilaporkan, hanya collider, jadi tipenya adalah Collider.

challenge icon

Tantangan

Mudah

Kendaraan melaju melewati Gerbang tol, sebuah pemicu. Skrip Driver menggerakkan kendaraan dan sudah selesai. Tulis skrip TollGate untuk gerbang:

  • Setiap kendaraan yang diberi tag Car membayar toll (3): tambahkan nilainya ke collected dan catat totalnya, Toll: 3 untuk mobil pertama, lalu Toll: 6.
  • Yang lainnya, seperti Pesepeda, lewat tanpa membayar dan tidak mencatat apa pun.

Tekan Putar terlebih dahulu: Console sudah menampilkan error skrip tentang method yang tertulis saat ini. Perbaiki, lalu tekan Periksa.

Coba sendiri

using UnityEngine;

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

    void OnTriggerEnter(Collision collision)
    {
        // Mobil membayar tol; yang lain lewat tanpa membayar
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Fisika dan Gameplay