onCollisioStay only for specific objects

I have to make my charachter jump only if he touches a collider of a specific layer (or tag): How can I do?

This is my script:


var sp = 200.0;
var jump = 200.0;

function Update () {
    rigidbody.AddForce (Input.GetAxis("Horizontal")*sp*Time.deltaTime, 0, 0);
}

function OnCollisionStay(collisionInfo : Collision) {

    if (Input.GetButton ("Jump")) {
        rigidbody.AddForce (0, jump, 0);
    }
}

1 Answer

1

For using tags you could use the information calculated by Collision:

function OnCollisionStay(collisionInfo : Collision) {

    if (Input.GetButton ("Jump") && collisionInfo.collider.tag == "XY") {
        rigidbody.AddForce (0, jump, 0);
    }
}

The Layer-Based Collision Detection is described here.