CharacterController's problem

Hi , i have an object player that has attached a characterController component and a rigidbody component(no kinematic and no gravity).
Now i have read that to detect a collision with another object(no kinematic and no gravity rigid body with a box collider) i have to use void OnControllerColliderHit(ControllerColliderHit collision)
but this detects continuously the collisions ,but i want detect only the collision on touch, how can i do?
This is my code:

void OnControllerColliderHit(ControllerColliderHit collision) {
    GameObject obj = collision.gameObject;
    if (obj.tag == "Bucket") {//if i have touched a bucket
        gameController.bucketCollision (gameObject, collision);
    }
}

Sorry for my english :frowning:

You dont need a rigidbody for character controller.

  1. Set a collider to the player with isTrigger checked.

  2. Attached a script to your hazard with code:

    function OnTriggerEnter (other : Collider ) {
    if(gameObject.tag == “Bucket”)
    {
    //Do something
    }
    }