@Kermzy

Почему скорость игры в сборке может сильно отличаться от редактора в Unity?

Добрый день!
Есть 2d проект состоящий из двух сцен (меню и основная игра). В меню присутствуют двигающиеся декоративные элементы. В самой игре есть элементы использующие 2d физику. В процессе разработки периодически делал новые сборки для проверки. На определенном этапе столкнулся с такой проблемой: при открытии exe-шника такое впечатление, что время течет намного быстрее (все двигающиеся элементы очень сильно ускорены). При переходе во вторую сцену (сама игра) все элементы, которые используют физику работают тоже не корректно (наоборот, как будто замедленно). При этом в редакторе самого Unity все проигрывается, как и раньше с заданной скоростью. Проблема выявилась только при проверке сборки. В промежутке между сборкой, в которой все отображалось корректно, и сборкой, в которой "все ускорено" было добавлено несколько новых префабов со звуком и откорректирован код для их проигрывания. Так же, в этот период была случайно удалена часть префабов из папки Assets и затем восстановлена из отдельного бэкапа. Удаленные префабы за этот промежуток между сборками не редактировались. При создании сборки пробовал все возможные варианты компрессии и сборок для разработчиков - результат не меняется.
Понимая, что скорее всего причин может быть много и что выкладывать кучу скриптов не целесообразно, прошу, по возможности, подсказать в направлении чего стоит начать поиск проблемы.
  • Вопрос задан
  • 625 просмотров
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Разработка игр
1) Выведите FPS и посмотрите
2) При передвижении ж deltaTime учитываете?
3) Посмотрите профайлером - вдруг что дико педалить
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Kermzy Автор вопроса
Проверил fps по Вашему совету, и действительно, в редакторе около 60, а в сборке около 2000. И действительно, я совсем забыл про Time.deltaTime. Остается непонятным, почему до этого в сборках fps соответствовал редактору, и ошибка не проявлялась, и из-за чего предполагаемый лимит в сборках в 60 fps слетел.
Теперь встал вопрос с восстановлением изначальной скорости всех объектов, т.к умножение на Time.deltaTime, как я понимаю надо выполнять вместе с "поправочным коэффициентом". А простое вычисление =(FPS в сборке / FPS в редакторе) не дает точной исходной скорости, т.к. fps в сборке сильно варьируется. В любом случае спасибо за решение главной проблемы, остальное - дело техники!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы