No Collision with character controller

I have a character who is using a character collider, when they collide with this sphere, the sphere is meant to instantiate an object, and destroy itself, but without the collision, nothing happens. It is even set to print, and yet it doesn’t. Here is the code: (is that the problem?)

function OnCollisionEnter(collision : Collision)

 {
     if(collision.gameObject.tag == "Player")
     	{
     	  print ("FOOD!");
     	  Instantiate(BodyPrefab, GameObject.Find("Snake").transform.position, Quaternion.identity);
     	  Destroy(gameObject);
     	}
    }

For character Controller OnCollisionEnter does not work… Use this…

function OnControllerColliderHit (collision : ControllerColliderHit) {
    
     {
         if(collision.gameObject.tag == "Player")
            {
              print ("FOOD!");
              Instantiate(BodyPrefab, GameObject.Find("Snake").transform.position, Quaternion.identity);
              Destroy(gameObject);
            }
        }