- Home /
Booleans are not working
i´m don´t know what i´m doing bad, please help, i´m really tired from finding the problem, i´m tryin to make double jump.
using UnityEngine;
using System.Collections;
public class asd : MonoBehaviour {
public bool grounded;
public bool firstJump;
public bool secondJump;
public float firstJumpForce;
public float secondJumpForce;
// Use this for initialization
void Start () {
grounded = false;
firstJump = false;
secondJump = false;
}
// Update is called once per frame
void Update () {
if (grounded)
secondJump = false;
if (Input.GetKey(KeyCode.W)){
rigidbody2D.AddForce (new Vector2 (0, firstJumpForce));
}
if (Input.GetKey(KeyCode.W) && !grounded && !secondJump) {
rigidbody2D.AddForce (new Vector2 (0, secondJumpForce));
secondJump = true;
}
}
void FixedUpdate (){
movex = Input.GetAxis ("Horizontal");
movey = Input.GetAxis ("Vertical");
rigidbody2D.velocity = new Vector2(movex * Speed, rigidbody2D.velocity.y);
}
void OnCollisionEnter2D(Collision2D coll){
if (coll.gameObject.tag == "Ground"){
grounded = true;
firstJump = true;
secondJump = false;
}
}
void OnCollisionExit2D(Collision2D coll)
if (coll.gameObject.tag == "Ground"){
grounded = false;
firstJump = false;
}
}
Use Debug.Log to find out what all your values are, or put then in a GUI to see them in realtime.
Answer by fafase · Feb 06, 2015 at 07:24 AM
Add an empty game object to your character at foot position. Then use:
http://docs.unity3d.com/ScriptReference/Physics2D.OverlapCircle.html
using that object position for center.
If the cast returns something, and it is the ground, you are grounded.
void FixedUpdate()
{
bool isGrounded = Physics2D.OverlapCircle(position, 0,5f, groundLayer);
if(jumpInput && isGrounded == true)
{
// AddForce upward
}
else if (jumpInput && isGrounded == false && doubleJump == false)
{
doubleJump = true;
//AddForce upward
}
else if(isGrounded == true && doubleJump == true)
{
doubleJump = false;
}
}
You can also watch :
http://unity3d.com/learn/tutorials/modules/beginner/2d/2d-controllers
Your answer
Follow this Question
Related Questions
How can I edit this script to double jump? 0 Answers
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Character Jump Problem! 0 Answers
[C#] JUMP - What i must add to this code to jump? :> 1 Answer