Суть - сделать экран загрузки между сценами, посреди картинка крутится и снизу надпись сколько процентов прогресс.
Сделал по примеру найденному в поиске, скрипт находится в префабе, префаб деактивирован в иерархии.
public class PrefabLoadScene : MonoBehaviour{
private int SceneId;
[HideInInspector] public TextMeshProUGUI TextLoad;
[HideInInspector] public Image ImageLoad;
private float RotationImageLoad = 0f;
public void StartScene(int i){ SceneId = i; StartCoroutine(LoadingFunction()); }
IEnumerator LoadingFunction(){
AsyncOperation Operation = SceneManager.LoadSceneAsync(SceneId);
while(!Operation.isDone){
RotationImageLoad += (Time.deltaTime * 100f);
float Progress = Operation.progress;
TextLoad.text = "Загрузка - " + (Progress * 100).ToString("0") + "%";
ImageLoad.transform.rotation = Quaternion.Euler(0, 0, RotationImageLoad);
ImageLoad.fillAmount = Progress;
yield return null;
}
}
}
когда нужна другая сцена
prefabLoadScene.gameObject.SetActive(true);
prefabLoadScene.StartScene(1);
в итоге экран загрузки включается, но индикатор всегда показывает 90% загрузки и картинка не крутится, причём экран загрузки может стоять мгновение, а может и секунды 2-3, а итог тот же 90%...
Как сделать его правильно?