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

    @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;
            }
        }
    }
    Ответ написан
    7 комментариев