Я создаю ритмическую игру на C # и Unity, и мне не удалось найти прямую корреляцию между проблемами, с которыми сталкиваются некоторые из моих игроков, и их оборудованием, но у некоторых из них возникают проблемы с игровым процессом, постепенно рассинхронизирующимся с музыка со временем. Обычно проходит пара минут, прежде чем это становится заметным, но это определенно случается и портит ощущение от игры.
Я отслеживаю прошедшее время с помощью двойника и добавляю к нему Time.deltaTime (время между кадрами), и я предполагаю, что с этим связаны только очень маленькие ошибки точности, и это то, что вызывает постепенную рассинхронизацию. .
Есть ли более точный способ сделать это? Я думаю, что получение времени начала игрового процесса, а затем вычитание этого времени для каждого кадра из текущего времени может сделать его более точным? Я пробовал синхронизировать время игрового процесса со звуковым временем (Bass.NET предоставляет способ получить позицию песни за секунды), но, хотя это работает для меня и многих других, в итоге у других появляется приличное аппаратное заикание (моя игра в целом отлично работает даже на 8-10-летних ПК).
Time.deltaTime
- это самый точный способ определения времени. Если вы можете объяснить, как вы используете его для своего кода, и опубликуете свой код, возможно, другие люди придумают лучший способ. - person Programmer   schedule 15.10.2017