При движении игрок как будто дёргается, рябит.
Движение происходит с помощью velocity (камера стоит на месте), оно плавное, дёргается явно сам спрайт, а не объект.
Такое ощущение, что спрайт при каждом шаге отрисовывается немного дальше чем нужно, а потом смещается назад.
Код серез velocity. Вчера поставил в Rigidbody интерполяцию и оно перестало дрожать и двигается более плавно, такое ощущение будто есть какое-то искажение объекта при движении
Vlad122, так в том то и дело, что тебе не подскажут в чём проблема, если ты не покажешь весь контекст. Может ты физику в Update дёргаешь, вместо FixedUpdate
Андрей Боронников,
void FixedUpdate()
{
if (Input.GetKey(KeyCode.W))
{
rb.velocity = new Vector2(rb.velocity.x, 1 * speed);
gun.transform.rotation =
Quaternion.Lerp(gun.transform.rotation, Quaternion.Euler(0,
0, 35 * side), 0.02f);
}
if (Input.GetKeyUp(KeyCode.W))
{
rb.velocity = new Vector2(rb.velocity.x, 0);
}
if (Input.GetKey(KeyCode.S))
{
rb.velocity = new Vector2(rb.velocity.x, -1 * speed);
gun.transform.rotation =
Quaternion.Lerp(gun.transform.rotation, Quaternion.Euler(0,
0, -35 * side), 0.02f);
}
if (Input.GetKeyUp(KeyCode.S))
{
rb.velocity = new Vector2(rb.velocity.x, 0);
}
if (Input.GetKey(KeyCode.A))
{
rb.velocity = new Vector2(-1 * speed, rb.velocity.y);
}
if (Input.GetKeyUp(KeyCode.A))
{
rb.velocity = new Vector2(0, rb.velocity.y);
}
if (Input.GetKey(KeyCode.D))
{
rb.velocity = new Vector2(1 * speed, rb.velocity.y);
}
if (Input.GetKeyUp(KeyCode.D))
{
rb.velocity = new Vector2(0, rb.velocity.y);
}
}
Дрожание ушло, но появилось ощущение, что спрайт по пикселям отрисовываетсяю. Небольшие детали на спрайте будто уменьшаются (сжимаются по горизонтали, может это половина спрайта двигается на один пиксель, а вторая делает это-же но с задержкой), это не сразу заметно, но меня раздражает.