Бесконечный цикл в корутине, но с имеющимся выходом
В общем проблема для меня совсем непонятна, я запускаю корутину один раз и кручу камеру в цикле, как раз в ней, но при достижении практически минимального порога выхода из цикла, значение немного уменьшается(?). Я не знаю что делать, даже ии сочла это странным и не смогла помочь. Вот код:
private void Die()
{
_playerDie = true;
StartCoroutine(DieAnimation());
Debug.Log("Движение игрока остановлено");
}
private IEnumerator DieAnimation()
{
Quaternion camup = Quaternion.Euler(-90, _playerCamera.transform.localRotation.y, _playerCamera.transform.localRotation.z);
Quaternion cam = _playerCamera.transform.localRotation;
float timeElapsed = 0f;
for (; timeElapsed < _durationDie;)
{
timeElapsed += Time.deltaTime;
float progress = timeElapsed / _durationDie;
progress = Mathf.Clamp01(progress);
_playerCamera.transform.localRotation = Quaternion.Lerp(cam, camup, progress);
Debug.Log($"Time: {timeElapsed}, Progress: {progress}");
Debug.Log($"Delta: {Time.deltaTime}, FixedDelta: {Time.fixedDeltaTime}, TimeScale: {Time.timeScale}");
yield return null;
}
_playerCamera.transform.localRotation = Quaternion.Lerp(cam, camup, 1);
}
Я сначала использовал цикл while и в нём условие, потом через условие true, но внутри него условие и break, через for как в примере выше, потом значения приближенные к результату, но всё приводит к одному и тому же.