Когда я закончить уровень, он должен показать «Уровень Completed!» Текст и подождите 5 секунд, а затем начать следующий уровень.Единство WaitForSeconds ждет больше, чем ожидалось
private void showSuccess() {
levelCompleted.SetActive (true);
StartCoroutine("waitForNextLevel");
}
IEnumerator waitForNextLevel() {
Debug.Log ("Start time: " + Time.time);
yield return new WaitForSeconds (5);
Debug.Log ("End time: " + Time.time);
prepareTheLevel();
}
Однако текст появляется успешно, игра ждет в течение 5 секунд, а текст dissappears. Затем он ждет еще 5 секунд и начать следующий уровень.
Я хочу подождать всего 5 секунд, не скрывая текст.
Любые идеи?
Что именно вы видите в консоли (щелкните правой кнопкой мыши на вкладке «Консоль» -> «Открыть редактор журнала» даст вам текстовый вывод)? Не могли бы вы также опубликовать результат 'Debug.Log (Time.timeScale);' (например, сделать это в 'waitForNextLevel()')? Что содержит метод 'prepareTheLevel()'? – Arx
prepareTheLevel() скрывает текст «Уровень завершен!» и начинает уровень с начала. Я видел, как Unity выполняет первый Debug.Log снова и снова в течение 5 секунд, затем он выполняет второй Debug.Log снова и снова в течение еще 5 секунд. –