Есть мысли по поводу нерационального торможения рендеринга при использовании события Update.
Знакомая ситуация: пока во всех Update всех объектов выполняется код n-е количество мс, рендер мог бы показать за это время еще несколько кадров, если бы не ждал их завершения. В таком случае, следующий апдейт мог бы быть вызван сразу, как только будет завершен предыдущий.
Может возникнуть ситуация, когда часть объектов переместилось, потом произошел рендеринг - и игрок видит, что часть объектов висит в воздухе (если мы перемещали не родительский объект, а его дочерные объекты по отдельности внутри Update).
Чтобы такого не было, изменения параметров объектов в Update должны быть типа транзакций, т.е. пока не закончиться выполнение Update изменения transform и пр. не будут переданы рендеру, но в тоже время должны быть сохранены. Это означает введение своеобразного кэша объектов для рендера (изменения физики и встроенных компонентов (понятно, что не всех) должны попадать в кэш сразу после очередного настоящего кадра, без транзикций, а вот изменения параметров объекта из Update - по завершению очередного прохода этого самого Update).
Понимаю, что тут есть множество ньюансов и все-такое, но схема претендует на значительное увеличение FPS.
Для выполнения кода действительно в каждом кадре можно использовать, например OnPreRender и т.п.
Кто уже знаком с новой юнити, этот рендеринг в другом потоке - он реализует подобную схему? Если да - то юнити зэбест
Кстати, надо проверить, мб это можно реализовать через InvokeRepeating... если выполнение Invoke не замедляет рендер и, при том, позволяет добиться той же частоты вызова, что и Update.