- Home /
Jumping with ridget body and OnEnterTrigger
Hello everyone,
I am making simple 2D platform game. I need some help with my jumping script. Here is my code attached to the Character rigidbody Game Object:
var moveSpeed:float = 0.1;
var jumpSpeed:float = 0.2;
var jumpHeight = 10;
var jumping = false;
function Update () {
if(Input.GetButton("Right"))
{
rigidbody.position += Vector3(moveSpeed, 0, 0);
}
if(Input.GetButton("Left"))
{
rigidbody.position -= Vector3(moveSpeed, 0, 0);
}
if(Input.GetButton("Jump") && !jumping )
{
rigidbody.velocity = Vector3(0,jumpHeight,0);
jumping = true;
}
}
function OnTriggerEnter(col:Collider)
{
if(col.gameObject.tag == "Floor")
{
jumping = false;
}
}
The guy jumps once but then doesn't want to jump again. Is there anything wrong I am doing with the OnTriggerEnter function? Probably this is just me being stupid:P
I have used this: http://answers.unity3d.com/questions/48557/how-do-i-check-when-a-rigidbody-is-colliding-with.html but I am still having problems.
Thanks for any help.
Answer by Joshua · Aug 28, 2011 at 10:03 AM
I assume the problem is that you're using OnTriggerEnter to register landing, but the collider on the floor is probably not a trigger. So use OnCollisionEnter instead.
function OnCollisionEnter( col : Collision )
{
if( col.gameObject.CompareTag( "Floor" ) )
jumping = false;
}
Thanks mate, it works! Sorry about that comment but i am just a noob:-)
Your answer
Follow this Question
Related Questions
Box collider doesn't work when same size as mesh. 1 Answer
OnTriggerEnter not being called, have trigger, RB, and colliders set? 1 Answer
Jumping with rigid body3d 1 Answer
OnTriggerEnter not functioning 0 Answers
OnTriggerEnter AddForce 1 Answer