@locaI

Как сделать прыжок независимым от движения?

есть скрипт для управления персонажем, там есть функция прыжка, и дело в том, что если прыгнуть с зажатой кнопкой движения (A или D) то всё работает нормально, но если зажать кнопку движения и прыгнуть, а после в полёте отпустить кнопку движения персонаж просто падает вниз, как это пофиксить?

// отрывки кода
// в скрипте двойной прыжок

public float speed;
	public float jumpforce;
	public Rigidbody2D rb;
	public Animator anim;
	
	private int extraJumps;
	public int extraJumpsValue;

void Start()
    {
	extraJumps = extraJumpsValue;
        rb = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
    }

private void FixedUpdate()
	{
			
		isGrounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
		anim.SetBool("isGrounded", isGrounded);
		
		// jump
		if (isGrounded == true)
		{
			extraJumps = extraJumpsValue;;
		}
		
		if (Input.GetKeyDown(KeyCode.Space) && extraJumps > 0)
		{
			rb.velocity = Vector2.up * jumpforce;
			extraJumps--;
		}else if (Input.GetKeyDown(KeyCode.Space) && extraJumps == 0 && isGrounded == true)
		{
			rb.velocity = Vector2.up * jumpforce;
		}
	}
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы