Menu
CoddyTech

OnCollisionEnter

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

Saat dua collider mulai bersentuhan, Unity memanggil OnCollisionEnter(Collision collision) pada script kedua object. Fungsi ini dipanggil sekali, pada langkah fisika saat sentuhan dimulai, bukan lagi selama keduanya tetap bersentuhan. Agar tabrakan terjadi, setidaknya salah satu dari keduanya harus memiliki Rigidbody yang digerakkan oleh fisika: dinding dan lantai tanpa Rigidbody tidak pernah melaporkan apa pun satu sama lain.

Peti ini mencatat pesan saat mendarat. Peti ini memiliki Rigidbody, jadi peti akan jatuh, dan pesan muncul pada langkah saat peti menyentuh lantai:

void OnCollisionEnter(Collision collision)
{
    Debug.Log("Thud!");
}

Peti mencatat pesan sekali, lalu hanya mencatatnya lagi setelah meninggalkan lantai dan mendarat untuk kedua kalinya. Lantai juga menerima pesan: script pada lantai akan mengetahui saat peti mendarat, meskipun lantai tidak memiliki Rigidbody. Nama dan parameternya harus tepat. Method bernama onCollisionEnter tidak pernah dipanggil, tanpa menampilkan error. Method yang menerima Collider membuat Unity mencatat Script error: OnCollisionEnter dengan This message parameter has to be of type: Collision, lalu mengabaikannya. Selama keduanya tetap bersentuhan, Unity memanggil OnCollisionStay pada setiap langkah fisika, dan saat keduanya berpisah, Unity memanggil OnCollisionExit sekali.

challenge icon

Tantangan

Mudah

Pressure plate menghitung benda yang mendarat di atasnya. Pressure plate tidak memiliki Rigidbody; peti di atasnya memilikinya dan jatuh ke atas pressure plate.

  • Setiap kali sesuatu mulai menyentuh pressure plate, tambahkan 1 ke hitungan dan catat: Pressed 1, lalu Pressed 2, dan seterusnya.
  • Sesuatu yang berada di atas pressure plate dihitung satu kali, berapa pun lama benda itu berada di sana.

Tekan Play dan amati Console, lalu Check.

Coba sendiri

using UnityEngine;

public class PressurePlate : MonoBehaviour
{
    // Hitung setiap pendaratan dan catat di log: Pressed 1, Pressed 2, ...
}
quiz iconUji dirimu

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

Semua pelajaran di Fisika dan Gameplay