Question by
flaviolight92 · Feb 11, 2017 at 08:19 PM ·
raycastjumpingdouble jump
Problem with double jump and characther movement
I'm total noob in coding but im trying to make this character move, jump and double jump. Sometimes my character loose the second jump expecially when i'm moving in some direction on the platform.
I gave to ferr2d ground a ground layer and my character has a default layer. I have also problem that when i'm falling and im going on a collider I stay on collider and don't fall down.
public float maxSpeed = 10f;
public float jumpForce = 10f;
bool doubleJump = false;
bool grounded = true;
public LayerMask playermask;
Rigidbody2D rb;
SpriteRenderer sr;
Animator anim;
// Use this for initialization
void Start ()
{
rb = GetComponent<Rigidbody2D>();
sr = GetComponent<SpriteRenderer>();
anim = GetComponent<Animator>();
}
void FixedUpdate ()
{
MovementAnimation();
}
void Update()
{
if (IsGrounded())
{
doubleJump = false;
}
Jump();
}
private void OnCollisionEnter2D(Collision2D collision)
{
grounded = true;
}
void MovementAnimation()
{
float move = Input.GetAxis("Horizontal");
anim.SetFloat("Speed", Mathf.Abs(move));
rb.velocity = new Vector2(move * maxSpeed, rb.velocity.y);
Flip(move);
}
void Flip(float move)
{
if (move > 0)
{
sr.flipX = false;
}
else if (move == 0)
{
sr.flipX = sr.flipX;
}
else
{
sr.flipX = true;
}
}
bool IsGrounded() //RayCast che controlla se il pg è a terra quando
{
Vector2 position = transform.position;
Vector2 direction = Vector2.down;
float distance = 1.2f; //Distanza dal Suolo
Debug.DrawRay(position, direction* distance, Color.green);
RaycastHit2D hit = Physics2D.Raycast(position, direction, distance, playermask);
if (hit.collider != null)
{
return true;
}
return false;
}
void Jump()
{
if ((IsGrounded() || doubleJump == true) && Input.GetButtonDown("Jump"))
{
rb.AddForce(Vector2.up*jumpForce);
doubleJump = true;
if (doubleJump == true && !IsGrounded())
{
doubleJump = false;
}
}
}
}
2017-02-11-2.png
(29.3 kB)
2017-02-11-3.png
(259.5 kB)
Comment
Your answer
Follow this Question
Related Questions
Raycast not changing value 0 Answers
Player not double jumping. 0 Answers
player not able to double jump 0 Answers
Jump Using Raycast. 0 Answers
Why this don't work in unity 2020.3.1f1, but it´s working in 2019.2.14f1? 0 Answers