Цель: создать простой экран загрузки, показывающий прогресс, используя компонент слайдера Unity.

Настройка сцены

Я создал две новые сцены: сцену загрузки и следующую загрузку в фоновом режиме. Затем у меня есть пустой объект, выступающий в роли менеджера, который будет иметь сценарий загрузки сцены.

У меня есть холст с фоновым изображением, заголовком и полосой загрузки в моей сцене загрузки.

Я настроил фоновое прямоугольное преобразование на все нули для полосы загрузки и изменил множитель пикселей на единицу до 5.

Затем для заливки я сделал то же самое, изменив преобразование записи на ноль, настроив множитель пикселей на единицу до 5 и изменив цвет на зеленый.

Наконец, для области ручки я отключил изображение ручки и прикрепил текстовый компонент к ручке, чтобы отображать процент полосы загрузки.

Загрузка сценария сцены

Этот сценарий прикреплен к объекту менеджера и будет связываться с холстом, чтобы отображать ход загрузки следующей сцены. Возьмите ползунок и текстовый объект, прикрепленный к ползунку.

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

public class LoadingBar : MonoBehaviour
{
    [SerializeField] private Slider _slider;
    [SerializeField] private TMP_Text _text;
    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine("LoadLevel");
    }

    IEnumerator LoadLevel()
    {
        AsyncOperation asyncLoad = SceneManager.LoadSceneAsync("NextScene");
       
        while (!asyncLoad.isDone)
        {
            _slider.value = asyncLoad.progress;
            _text.text = asyncLoad.progress.ToString();
           yield return null;
        }


    }
}