Not detecting collision?

void OnCollisionEnter(Collision col){
if (col.gameObject.tag == “Arrow”) {
Debug.Log (“we should die now”);
Die ();
}
}

but when the player gets hit by the arrow it doesn’t call die or the debug.log.

i don’t know why this is not working.

void OnControllerColliderHit(ControllerColliderHit col){
Debug.Log (“Called”);
if (col.collider.tag == “Arrow”) {
if (GetComponent ().isMine) {
Debug.Log (“we should die now”);
Die ();
}
}
}

I switched to that but now its calling the debug but when i hit the arrow it still does not work.