# OnControllerColliderHit(ControllerColliderHit)

> OnControllerColliderHit is called when the controller hits a collider while performing a Move.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.5/script-reference/unityengine.md)

## OnControllerColliderHit()

```csharp
public void OnControllerColliderHit(ControllerColliderHit controllerColliderHit)
```

### Parameters

**** (\[ControllerColliderHit]\(/engine/6000.5/script-reference/unityengine/controllercolliderhit)):&#x20;

### Remarks

This can be used to push objects when they collide with the character.

### Examples

```csharp

using UnityEngine;

public class Example : MonoBehaviour
{
    // this script pushes all rigidbodies that the character touches
    float pushPower = 2.0f;
    void OnControllerColliderHit(ControllerColliderHit hit)
    {
        Rigidbody body = hit.collider.attachedRigidbody;

        // no rigidbody
        if (body == null || body.isKinematic)
        {
            return;
        }

        // We dont want to push objects below us
        if (hit.moveDirection.y < -0.3)
        {
            return;
        }

        // Calculate push direction from move direction,
        // we only push objects to the sides never up and down
        Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);

        // If you know how fast your character is trying to move,
        // then you can also multiply the push velocity by that.

        // Apply the push
        body.velocity = pushDir * pushPower;
    }
}
```
