How to Detect Collisions using Code in Unity

Here's a simple tutorial on how to detect collisions in Unity using C#.

Step 1: Set up your Unity Project

If you haven't yet, create a new Unity project or open an existing one. Make sure you have a scene with the necessary game objects.

Step 2: Add colliders to GameObjects

Ensure that the GameObjects you want to detect collisions on have colliders attached. Unity provides various types of colliders, such as 'BoxCollider', 'SphereCollider', etc. Attach the appropriate collider to your GameObjects.

Step 3: Create a C# Script

Create a new C# script in the project folder. You can do this by right-clicking in the "Assets" window, selecting "Create", then "C# Script". Name it something like "CollisionHandler".

Step 4: Open the Script and Implement Collision Handling

Open the script in your preferred code editor and implement the collision handling logic. Here's a simple example:

'CollisionHandler.cs'

using UnityEngine;

public class CollisionHandler : MonoBehaviour
{
    private void OnCollisionEnter(Collision collision)
    {
        // This method is called when a collision occurs.

        // Check if the collision involves a specific tag.
        if (collision.gameObject.CompareTag("YourTag"))
        {
            // Perform actions when collision with the specified tag occurs.
            Debug.Log("Collision with object tagged 'YourTag'");
        }

        // You can also access information about the collision, such as contact points, etc.
        ContactPoint contact = collision.contacts[0];
        Debug.Log("Collision at point: " + contact.point);
    }

    // Additional collision methods can be used, such as OnCollisionStay, OnCollisionExit, etc.
}

Step 5: Attach Script to GameObject

Attach the script you created to the GameObject you want to detect collisions on. Select the GameObject, find the Inspector window, and drag your script onto the GameObject. Also, at least one of the objects needs to have a 'Rigidbody' component attached, to be able to detect collisions.

Step 6: Test the Collision Handling

Run your Unity scene, and when the GameObject with the attached script collides with another GameObject, the 'OnCollisionEnter' method will be triggered, and you'll see the corresponding log messages.

Conclusion

That's it. You've successfully implemented collision handling in Unity. Customize the code according to your specific requirements and expand upon it as needed.

Suggested Articles
Adding Bouncing Ball Physics in Unity
Implementing a 2D Grappling Hook in Unity
Implementing Mining Mechanics in Unity Game
How to Check if a Rigidbody Player is Grounded in Unity
Unity How to Drag Rigidbody using the Mouse Cursor
Creating a Flag Simulation in Unity
The Physics Behind Raycasting in Unity