У меня есть маленький платформер, куда игрок может прыгать.Прыжки работают отлично, игрок прыгает высоко в воздухе и падает обратно в зависимости от силы тяжести, которую я ему установил.Однако, как только игрок переходит границу, где он может упасть после этого, его физика, кажется, застревает до конца.Вместо того, чтобы упасть, он медленно спускается, как будто он сделан из листьев или около того.
Я обнаружил, что это также происходит, когда игрок попадает в боковую стену.Похоже, как только вы пересекаете край, игрок как бы касается края стены на секунду, и это убивает его физику.
Я записал эту проблему здесь:
https://youtu.be/CE-W4wmMqcA
Это настройки моего игрока:

Я также попытался добавить 2D физику как к стене, так и к проигрывателю, и там все установилдо 0. Это немного изменило эффекты, но было далеко от их решения ...
Кроме того, мое исправленное обновление, куда я прыгаю (ловлю бул от обновления, делаю физику в исправленном:)
void FixedUpdate()
{
currentPlayerSpeed = rb.velocity.x;
if (moveLeft)
{
rb.AddForce((Vector2.left * movementSpeed * Time.deltaTime) - rb.velocity, ForceMode2D.Force);
}
if (moveRight)
{
rb.AddForce((Vector2.right * movementSpeed * Time.deltaTime) - rb.velocity, ForceMode2D.Force);
}
if (jump)
{
if (isGrounded)
{
isGrounded = false;
rb.AddForce(Vector2.up * (jumpHeight * counterForJumpHeight) * Time.deltaTime, ForceMode2D.Impulse);
jump = false;
anim.SetBool("bool_anim_isJumping", true);
}
if (timer != null)
timer.Stop();
counterForJumpHeight = jumpMulitMin;
jumpAlreadCharging = false;
}
if (!moveLeft && !moveRight) // if no movement input is happening
{
if (isGrounded)
{
StopVelocity();
}
}
}