Страница 1 из 1

Движение рывками

СообщениеДобавлено: 10 янв 2021, 17:11
z-red
Здравствуйте.
Подскажите пожалуйста: движение обьектов происходит рывками даже в билде: https://youtu.be/SzjKCnk83po (заметно на верхнем движушемся квадратике), в редакторе еще заметнее.
В основном потоке считается только сцена системы, там почти ничего нет. В фоновом потоке считается собственно движение этих квадратиков (это корабли) и производство в системе.
На видео - система, таких систем 1200, в каждой 10 планет, и у каждой из них 10 спутников, по 3 станции (дргие квадратики), и по три корабля. На некоторых планетах/спутниках идет производство.
Почти все фоновые расчеты делаются деревом поведения. Если снизить количество обьектов, которые надо считать, лаги меньше.
Все это дело пошаговое, с длительностью шага 1 сек. В фоне расчитывается то, что будет на сцене в следующем шаге.
Как мне кажется, это сборщик мусора вызывает рывки. Подскажите пожалуйста, мне следовало бы что-то изменить в своем коде, или есть какой-то способ заставить сборщик работать повежливее, или вообще в фоне?

Деревья тут: https://github.com/yurisuser/Space/tree/master/Assets/Classes/AI
Запуск потока тут: https://github.com/yurisuser/Space/blob/master/Assets/Classes/Core/TaskManager.cs
Скрипты геймОбджектов тут: https://github.com/yurisuser/Space/tree/master/Assets/Scripts

Re: Движение рывками

СообщениеДобавлено: 10 янв 2021, 17:18
Saltant
Наверно проще для таких целей было юзать ECS.

Re: Движение рывками

СообщениеДобавлено: 10 янв 2021, 17:29
z-red
Вместо деревьев?

Re: Движение рывками

СообщениеДобавлено: 10 янв 2021, 17:40
Saltant
Вообще вместо всего, просто делать игру сразу на ECS раз у тебя столько объектов.

Re: Движение рывками

СообщениеДобавлено: 10 янв 2021, 17:46
samana
А может это "эффект" от банального deltaTime при передвижении? У меня довольно часто такое наблюдается..

Re: Движение рывками

СообщениеДобавлено: 10 янв 2021, 17:56
z-red
samana писал(а):А может это "эффект" от банального deltaTime при передвижении? У меня довольно часто такое наблюдается..

Как-то оно подозрительно совпадает с завершением потока.
Вы имеете в виду, сделать движение через Vector3.Lerp или подобное?

Re: Движение рывками

СообщениеДобавлено: 10 янв 2021, 17:57
z-red
Saltant писал(а):Вообще вместо всего, просто делать игру сразу на ECS раз у тебя столько объектов.

Ну пока я не так много переделывать, познаколюсь с ESC. Это далеко не вся нагрузка, кторую я планировал.

Re: Движение рывками

СообщениеДобавлено: 10 янв 2021, 18:04
samana
z-red писал(а):Вы имеете в виду, сделать движение через Vector3.Lerp или подобное?

У меня нет вариантов как корректировать такие ситуации. С одной стороны нужно перемещать объект с заданной скоростью, поэтому используется deltaTime, но могут появляться рывки. А если делать без deltTime, тогда рывки пропадают (визуально), но и пропадает контроль скорости передвижения. :-??

Re: Движение рывками

СообщениеДобавлено: 11 янв 2021, 10:09
z-red
Решение есть: Project Settings => Player => Use incremental GC

Re: Движение рывками

СообщениеДобавлено: 11 янв 2021, 11:36
Jarico
Не проще ли использовать джобсы?

Re: Движение рывками

СообщениеДобавлено: 11 янв 2021, 18:23
z-red
Jarico писал(а):Не проще ли использовать джобсы?

Я самоучка, и поэтому полно пробелов в знаниях, простите. Почитаю, что такое джобсы.

Re: Движение рывками

СообщениеДобавлено: 11 янв 2021, 19:04
Saltant
z-red писал(а):
Jarico писал(а):Не проще ли использовать джобсы?

Я самоучка, и поэтому полно пробелов в знаниях, простите. Почитаю, что такое джобсы.

Тут 99% самоучек. Лови https://habr.com/ru/post/413897/

Re: Движение рывками

СообщениеДобавлено: 16 янв 2021, 08:34
z-red
Saltant писал(а):
z-red писал(а):
Jarico писал(а):Не проще ли использовать джобсы?

Я самоучка, и поэтому полно пробелов в знаниях, простите. Почитаю, что такое джобсы.

Тут 99% самоучек. Лови https://habr.com/ru/post/413897/

Познакомился, это для меня сложно, документации мало. Ещё толком не знаю ни Юнити, ни С-шарп, и добавлю в список еще одну вещь. которую толком не знаю)). Спасибо)