Как сделать индикатор заполнения в Unity, при нажатии кнопки?

Нужна помощь.
У меня не получается индикатор заполнения.
Мне нужно, чтобы я нажимал на кнопку, и полоска(индикатор) заполнялась за определенное время и в это время нельзя было прервать загрузку при нажатии на кнопку.

Может кто помочь? Много роликов смотрел, искал инфы, но все не работает для кнопки.
  • Вопрос задан
  • 358 просмотров
Решения вопроса 1
@Ente
Unity developer
Создаешь два gameobjecta - один с кнопкой, второй со слайдером. У слайдера выключаешь возможность управлять через мышь и убираешь лишние элементы, чтобы получился слайдер с заполнением. Выставляешь MinMax = 0, 1;

Затем заводишь скрипт ProgressBar.cs и вешаешь на Slider.

[SerializeField] private Button activationButton;
[SerializeField] private Slider progressSlider;
[SerializeField] private float speed = 1;

private void OnEnable()
{
     activationButton.onClick.AddListener(Press);
}

private void OnDisable()
{
     activationButton.onClick.RemoveListener(Press);
}

private void Press()
{
    activationButton.onClick.RemoveListener(Press);
    StartCoroutine(Loop());
    IEnumerator Loop()
    {
        for (var i=progressSlider.value; i<1f; i+= Time.deltaTime * speed)
        {
             progressSlider.value = i;
             yield return null;
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы