Zefirot
@Zefirot

Как правильно сделать экран загрузки?

Суть - сделать экран загрузки между сценами, посреди картинка крутится и снизу надпись сколько процентов прогресс.
Сделал по примеру найденному в поиске, скрипт находится в префабе, префаб деактивирован в иерархии.
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%...

Как сделать его правильно?
  • Вопрос задан
  • 617 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы