OnCollisionEnter can't find 'Player'?

Hey all,


First, I have a GameObject in my object hierarchy called 'Player'. I have applied a script (see below) to make this 'Player' have the ability to move rigid bodys.

Second, I also have a cube object in my scene. I applied this script to the cube to to 'listen' for when the Player object collides with this cube...

function OnCollisionEnter(collision:Collision)
    if(collision.gameObject.tag == "Player")

However, the collision between the player and the cube is never logged. Does anyone see anything wrong with this set up?



    Purpose: This script pushes all rigidbodies that the character touches
    Usage: drag this onto your 'Player' game object in your control set up

var pushPower = 2.0;

function OnControllerColliderHit (hit : ControllerColliderHit) {
    var body : Rigidbody = hit.collider.attachedRigidbody;
    // no rigidbody
    if (body == null || body.isKinematic)

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

    // Calculate push direction from move direction, 
    // we only push objects to the sides never up and down
    var pushDir : Vector3 = 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;

Tag != name.

If your object is named Player but not tagged Player then it'll never have its tag == player. You should check its name instead, or use GetComponent and see if it has some component that's unique to the player.

you might need to make sure your player has the trigger check box set in his collision? but not 100% sure..

have you tried....