Дергаются спрайты при движении в 2d, так и должно быть???

Общие вопросы о Unity3D

Дергаются спрайты при движении в 2d, так и должно быть???

Сообщение Kundabufer 28 авг 2023, 15:33

Делаю 2d типа платформер или раннер, то есть на сцене player и платформы. Платформы дергаются при движении. Движение осуществляю всеми возможными способами:

1, Передвигаю player за ним следит CinemachineVirtualCamera (при слежении main.camera всеми возможными способами результат одинаковый)
Двигаю методом rb.velocity или transform.position c *Time.deltaTime и *Time.FixedDeltaTime и без
Делаю это в FixedUpdate, Update, Lateupdate
Player висит в воздухе и не прикасается к платформе
Результат одинаковый - дергается.

2, Передвигаю платформы, а player висит в воздухе и не двигается, камера соответственно тоже.
Двигаю методом rb.velocity или transform.position c *Time.deltaTime и *Time.FixedDeltaTime и без
Делаю это в FixedUpdate, Update, Lateupdate
Результат одинаковый - дергается.

3, Создаю новый проект.
Создаю 1 объект, пишу один скрипт
{
public float horizontalMove = 10f;

Rigidbody2D rb;

void Awake()
{
Application.targetFrameRate = 60;
rb = GetComponent<Rigidbody2D>();
rb.constraints = RigidbodyConstraints2D.FreezeRotation;
}

private void FixedUpdate()
{
rb.velocity = new Vector2(horizontalMove, rb.velocity.y);
}
}
При движении спрайт иногда подергивается как на компьютере, так и на телефоне.

Application.targetFrameRate = 60; при других значениях, например 120 результат одинаковый
Quality Vsync Count = Don't Sync для андроид, при других настройках результат не меняется.
Fixed Timestep = 0,0143 или 0,02 или даже 0.002 на результат не влияет
Отключение Event System и Canvas не влияют.

После записи видео с 60fps с компьютера определил что происходит:
При равномерном движении спрайты должны сдвигаться каждый кадр на 1*N пикселей.
То есть смещение должно происходить каждый кадр допустим на 10 пикселей: 10-10-10-10-10-10-10-10-10
А происходит так, что иногда не отрисовывается изменение положения, а потом догоняет.
То есть смещение происходит не каждый кадр, а иногда не смещается, а потом смещается на две позиции: 10-10-10-10-10-00-20-10-10-10
Выглядит это как подергивание.
И это происходит не с постоянной периодичностью, а иногда, то есть может за 5 секунд один раз дернуться, а потом за две секунды 5 раз моргнуть.

Это видно на компьютере и при билде на телефон.

Но при касании экрана телефона - чудесным образом все двигается гладко, никаких подергиваний!!!

Только отпускаю касание и подергивания возвращаются.
Касания нигде никак не обрабатываются.

Что я не понимаю? Что еще попробовать? Помогите что мне делать, или это нормально так и должно быть?
Kundabufer
UNец
 
Сообщения: 1
Зарегистрирован: 28 авг 2023, 13:34

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9