need help with jumping script
I have tried to use the below script to make my character jump however it keep coming up with errors, can someone help me please. It its for an isometric shoot if that makes it any different.
The script i am trying to use in below:
using UnityEngine; using System.Collections;
public class Jump : MonoBehaviour { public bool grounded = true; public float jumpPower = 1;
void Start () {
Rigidbody rBody = GetComponent<Rigidbody> ();
}
void Update () {
if (Input.GetButtonDown("Jump") && grounded == true) {
Rigidbody2D.;
grounded = false;
if(!grounded && Rigidbody2D.velocity.y == 0) {
grounded = true;
}
if (Input.GetButtonDown("Jump") == true) {
.AddForce(transform.up*jumpPower);
grounded = false;
}
}
}
Answer by Winterblood · Apr 27, 2016 at 01:11 PM
You don't mention what goes wrong with this script. But I'd guess you can jump once, but not a second time unless you wait for a while?
Lose line 8, it doesn't do anything - surprised it even compiles. The velocity check for detecting grounding isn't reliable - there's a small chance your velocity will be exactly zero for one frame at the top of the jump, and while moving your capsule will tend to bobble up and down minutely as it embeds and unembeds from the floor. The system will only zero the velocity when the capsule has been more-or-less immobile for a short time.
I would suggest setting up OnCollisionEnter and OnCollisionExit callbacks on the player's capsule, and using the former to reset the grounded flag. You could also check that the normal of the collision is pointing more-or-less upwards, so that you only set it back to grounded when you land on a surface beneath you (otherwise you could jump against a wall which would reset the grounded flag). You may also need to reference count how many objects you are currently touching, and clear the grounded flag if you are not in contact with anything for a few frames (eg. you walked off a ledge). This has the advantage of giving you a few precious frames when you CAN jump even AFTER you stepped off the ledge, which feels good for the player.
hi sorry the script wont compile and to be honest i have no idea why as i only understand the very basics of coding so any help is greatly appreciated