CodeBlanks Logo Icon CodeBlanks

Collision events

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

Player.cs
using System;

class Program
{
    static void Main()
    {
        // collisionState ve target değerlerini tanımlayıp yazdır
    }
}

Sample solution

Player.cs
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

Question
void ____(Collision collision)
Answer
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

All lessons in Beginner