Проблемы с асинхронной загрузкой уровня Unity

Решил сделать окно перехода между уровнями. Нашел в инете кучу примеров, почитал документацию, но столкнулся с непонятной проблемой.
При отображении прогресса загрузки в текстовом элементе сначала показывается "0%", потом сцена зависает на некоторое время, после чего выдает "100%" и сразу переходит на новый уровень.
Как я понимаю, загрузка выполняется, но почему она зависает вместо того, чтобы отображать в тексте проценты?
Вписывал в код Debug.Log(), через которой выводил число загрузки, но там та же картина. К примеру, "0" "0" потом 5 секунд ожидания и сразу "100" "100" "100". На видео из примеров все работает как надо, код один и тот же. Просто скопировал в новый проект ничего не изменяя. Вот код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class SceneLoading : MonoBehaviour
{
 [Header("Загружаемая сцена")]
 public int sceneID;
 [Header("Остальные объекты")]
 public Image LoadingImg;
 public Text progressText;

 void Start ()
 {
  StartCoroutine (AsyncLoad());
 }

 IEnumerator AsyncLoad()
 {
  AsyncOperation operation = SceneManager.LoadSceneAsync (sceneID);
  while (!operation.isDone)
  {
   float progress = operation.progress / 0.9f;
   LoadingImg.fillAmount = progress;
   progressText.text = string.Format("{0:0}%", progress * 100);
   yield return null;
  }
 }
}

Ответы (1 шт):

Автор решения: Taranass

Откатился на версию 2019.3.15f, но думаю, что и на других пойдет. Изменил код на следующий

public int sceneID;
public Text m_Text;

void Start()
{
    StartCoroutine(LoadScene());
}
IEnumerator LoadScene()
{
    yield return null;

    AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(sceneID);
    asyncOperation.allowSceneActivation = false;
    while (!asyncOperation.isDone)
    {
        m_Text.text = "Loading progress: " + (asyncOperation.progress * 100) + "%";

        if (asyncOperation.progress >= 0.9f)
        {
            asyncOperation.allowSceneActivation = true;
        }

        yield return null;
    }
}

Теперь при загрузке все работает верно. Сначала первая сцена, потом начинает подгружаться вторая. Нужно было добавить yield return null;в начало, чтобы первая сцена успела отобразиться/прогрузиться (как я понял) Решение нашел здесь. Куда смотрел.. :/
AsyncOperation.allowSceneActivation

→ Ссылка