Гравитация установлена низкая (всего -5) и сила прыжка тоже не большая. что бы был эффект невесомости.
Столкнулся с такой проблемой, если нажать прыжок, и влево или вправо, то слегка заметно что перс движется как будто по ступеням спускается, это заметно слегка но глаз режет.
Так же если нажать в прыжке второй раз вправо или влево перс может провалится. То есть как будто отжали все кнопки, хотя они нажаты. Или если идти и нажать прыжок, он может сработать со второго раза.
Как будто нажатия не срабатывают одновременно или почти одновременно.
Код:
[SerializeField]
private int lives = 5;
[SerializeField]
private float speed = 3f;
[SerializeField]
private float jumpForce = 5f;
private Rigidbody2D rigidbody;
private Animator animator;
private SpriteRenderer sprite;
float moveHorizontal;
float moveVertical;
private void Awake()
{
rigidbody = this.GetComponent<Rigidbody2D>();
animator = this.GetComponent<Animator>();
sprite = this.GetComponentInChildren<SpriteRenderer>();
}
void FixedUpdate()
{
moveHorizontal = Input.GetAxis("Horizontal");
moveVertical = Input.GetAxis("Vertical");
}
void Update()
{
if (Input.GetButton("Horizontal")) Run();
if (Input.GetButtonDown("Vertical")) Fly();
}
void Run()
{
Vector3 direction = this.transform.right * moveHorizontal;this.transform.position + direction, speed * Time.deltaTime);
this.transform.Translate(direction * (speed * Time.deltaTime),Space.Self);
}
private void Fly()
{
if (moveVertical > 0) rigidbody.AddForce(this.transform.up * jumpForce, ForceMode2D.Impulse);
else rigidbody.AddForce(-this.transform.up * (jumpForce + (jumpForce / 5)), ForceMode2D.Impulse);
}
Настройки Rigidbody2D: