Collision events
- Game Development course
- Beginner
- Lesson 52/83
- 4 min
Learn OnCollisionEnter, OnCollisionExit and OnCollisionStay.
Collision Events
When two solid Colliders strike one another, Unity automatically fires collision events. For these events to trigger, at least one of the participating objects must carry an active Rigidbody.
// Method called at initial moment of contact
void OnCollisionEnter(Collision collision) {
Debug.Log("Collision hit: " + collision.gameObject.name);
}The Collision parameter provides rich data regarding contact points, impact velocity, and the colliding entity.
OnCollisionStay and OnCollisionExit
A physical collision follows a three-phase lifecycle: OnCollisionEnter at initial contact, OnCollisionStay while resting together, and OnCollisionExit upon separation.
void OnCollisionExit(Collision collision) {
Debug.Log("Objects separated from each other.");
}For instance, to verify if a character is grounded, grounded state is turned on with Enter and cleared with Exit.
Practice Print collision event
Assign "OnCollisionEnter" to collisionState and "Wall" to target. Print Event: OnCollisionEnter | Target: Wall to the console.
Starter code
using System;
class Program
{
static void Main()
{
// collisionState ve target değerlerini tanımlayıp yazdır
}
}Sample solution
using System;
class Program
{
static void Main()
{
string collisionState = "OnCollisionEnter";
string target = "Wall";
Console.WriteLine("Event: " + collisionState + " | Target: " + target);
}
}Expected output
Event: OnCollisionEnter | Target: Wall
Questions and answers
Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.
1 Which function is called every physics frame while two solid objects remain in contact?
- OnCollisionStart
- OnTriggerOnce
- OnCollisionStay Correct answer
- OnCollisionStop
Explanation: OnCollisionStay runs regularly on each FixedUpdate step for as long as contact persists.
2 Define collision start method
void ____(Collision collision)
void OnCollisionEnter(Collision collision)
Explanation: In Unity, OnCollisionEnter is the standard callback method capturing the initial frame of solid contact.
3 Collision event lifecycle
| Term | Meaning |
|---|---|
OnCollisionEnter |
Runs once on first contact |
OnCollisionStay |
Runs every frame while in contact |
OnCollisionExit |
Triggered when bodies separate |
Collision |
Holds collision & object data |