Как сделать плавный поворот игрока в Runner на платформе, которая должна разворачивать игрока
На платформе мой игрок должен поворачивать на 90 градусов, чтобы бежать в другую сторону, но как сделать так, чтобы при повороте учитывалась и позиция с которой игрок встретился с этой платформой, и сколько игроку осталось идти по этому развороту. Нужен корректный поворот, чтобы, например, если игрок поворачивал с краю, то он и остался на краю после поворота. Игрок при этом ещё двигается влево и вправо.
Движение реализовано так:
private void FixedUpdate()
{
float straightAmount = Time.fixedDeltaTime * moveSpeed * (float)GameProperties.SideMove;
float swerveAmount = Time.fixedDeltaTime * swerveSpeed * playerInputSystem.MoveFactorX * (float)GameProperties.MoveDirection;
rb.velocity = transform.right * swerveAmount;
rb.MovePosition(rb.position + (transform.forward * straightAmount));
}
