Математика
Профи
(961)
9 месяцев назад
takeOf" не срабатывает, когда персонаж падает без нажатия кнопки прыжка.
Для того чтобы исправить это, вам нужно добавить дополнительную проверку на падение персонажа без нажатия кнопки прыжка. Вместо использования только флага isGrounded для определения состояния персонажа на земле, вы можете проверять скорость вертикального движения персонажа.
Вот как можно модифицировать ваш код:
csharp
Копировать
void Update()
{
isGrounded = Physics2D.OverlapCircle(feetPos.position, checkRadius, whatIsGround);
if (isGrounded)
{
anim.SetBool("isJumping", false);
}
else if (rb.velocity.y < 0) // Добавляем проверку на падение
{
anim.SetBool("isJumping", true);
}
}
public void OnJumpingDown()
{
if (isGrounded || Mathf.Abs(rb.velocity.y) < 0.1f) // Добавляем дополнительную проверку на вертикальную скорость
{
rb.velocity = Vector2.up * jumpForce;
anim.SetTrigger("takeOf");
}
}
Эти изменения позволят триггеру "takeOf" срабатывать не только при нажатии кнопки прыжка, но и при падении персонажа без нажатия кнопки.
МатематикаПрофи (961)
9 месяцев назад
void Update()
{
isGrounded = Physics2D.OverlapCircle(feetPos.position, checkRadius, whatIsGround);
if (isGrounded)
{
anim.SetBool("isJumping", false);
}
else if (rb.velocity.y < 0) // Добавляем проверку на падение
{
anim.SetBool("isJumping", true);
}
}
public void OnJumpingDown()
{
if (isGrounded || Mathf.Abs(rb.velocity.y) < 0.1f) // Добавляем дополнительную проверку на вертикальную скорость
{
rb.velocity = Vector2.up * jumpForce;
anim.SetTrigger("takeOf");
}
}
Если ты нажимаешь на кнопку прыжка то все работает, а если он просто падает без нажатия кнопки то тригер не срабатывает
Код: