mayton2019, мудрый филин, если ты не разработчик игр или не разработчик на юнити и не знаешь работают ли твои идеи, то может не нужно давать советы в той области, в которой ты не разбираешься?
Движение 10000 юнитов находится в самом низу, занимает 5 строчек кода.
Скрин из профайлера в эдиторе.
Как можешь видеть, движение 10000 юнитов занимает 0.05ms
Рендер занимает 7ms и он занимает так много времени из-за конвертации float3 в vector3, если делать умнее и конвертировать только матрицу, а не отдельно позицию, вращение и скейл, времени оно занимать будет меньше.
При этом я никак не фильтрую сущности, отрисовываются абсолютно все 10000
И это метрики из эдитора.
Евгений Иванов, проседает потому что их юнитевский батчинг обрабатывает и отправляет на отрисовку даже ту геометрию, что не попадает в камеру. если нужно отрисовывать и обрабатывать только то, что находится на определенной дистанции от персонажа или попадает в камеру, делай свой батчинг и отрисовывай спрайты сам через rendermesh/rendermeshinstanced/rendermeshindirect
input ни с чем не синхронизирован. это просто метод, который ты вызываешь там, где тебе нужно. фиксед апдейт вызывается движком не каждый кадр, а раз в определенное время, поэтому и персонаж прыгает через раз. замени фиксед апдейт на обычный апдейт и не делай ту дичь с флагами, что написана в ответе.
нет никакого правильно. твой вариант нормальный, что ты там хочешь оптимизировать? 1 рейкаст в кадр никакой роли не сыграет абсолютно, он по времени даже одной десятой миллисекунды не займет.
yraiv, не будет оно лагать. просто не используй юнитевский апдейт в предметах, а обновляй их из одного места. всё. если будет лагать, тогда будешь думать как лучше сделать
yraiv, и где здесь камера дергается? когда у тебя зеленые круги появляются, они не дергаются. дергаются у тебя два белых круга, потому что на них коллайдеры и они друг друга отталкивают