Collider
Summary
A Collider is a component that defines the physical boundaries of a GameObject in the scene. Thus, Colliders define the shape of an object for the physics engine, so without one, there’s no collision detection or response, the object is non-blocking. This means that other objects — including the player — can pass through it as if it doesn’t exist physically.
Here are some typical configurations using a collider:
Indication
Non-Blocking
Other objects can pass through
Useful for: decoration or props that are not in the player’s way
Component: No collider
Function: ⌀
Non-Blocking with Trigger
Other objects can pass through, - but the collider detects when a GameObject passes through
Useful for: the finish line in a car race, a trap in a cave
Set: Collider + Trigger
Function: void OnTriggerEnter(Collider other)
Blocking
Other objects can bump into it - remains immobile
Useful for: walls, floor
Set: Collider
Function: None
Colliders Shape
Setup
Sphere collider
Other colliders
We introduce the colliders of the other standard 3D objects:
Shape |
Collider Type |
---|---|
Sphere |
Sphere Collider |
Capsule |
Capsule Collider |
Cylinder |
Capsule Collider |
Cube |
Box Collider |
Two remarks:
All basic 3D objects are delivered with a collider
The cylinder uses a capsule collider (Lower computational cost)
Collider
Scene Setup
Navigate to Assets > Scenes > PhysX
Create a new Scene named Detection
Create a sphere, assign it a color and a RigidBody with gravity
Move the sphere upwards
Collider Setup
In the Hierarchy, right click and select Create Empty gameobject
Collider script setup
A collider trigger provides multiple functions to handle collisions:
![]()
In the PhysX folder, create a new script named « Colliz »
Select the GameObject BCollider
Drag and drop the script into the Inspector
Copy paste the following code into the script
using UnityEngine; public class Colliz : MonoBehaviour { public Material Mat_in,Mat_out; void OnTriggerEnter(Collider other) { Renderer objectRenderer = other.gameObject.GetComponent<Renderer>(); objectRenderer.material = Mat_in; } void OnTriggerExit(Collider other) { Renderer objectRenderer = other.gameObject.GetComponent<Renderer>(); objectRenderer.material = Mat_out; } }
Drag and drop two Solid Color Materials into the Inspector
![]()
Avertissement
By reading the script, you can see that we change the sphere’s color via its Collider, using the reference named other. But why not place this script directly on the sphere? Because any object that activates the trigger option of its collider becomes a non-blocking object and that’s not the behavior we want for a 3D sphere.
Display collider
It is possible to display the collider in Play mode: