Advertisement
SnowPhoenix347

Untitled

Apr 1st, 2020
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.45 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6.  
  7. public class Bar : MonoBehaviour
  8. {
  9.     [SerializeField] private float _speed;
  10.     [SerializeField] private ParticleSystem _flameEffect;
  11.     [SerializeField] private Image _fillImage;
  12.     [SerializeField] private Gradient _gradient;
  13.  
  14.     private Slider _slider;
  15.     private float _value;
  16.     private bool _isFlameStop = true;
  17.  
  18.     private void Start()
  19.     {
  20.         _slider = GetComponent<Slider>();
  21.         _slider.onValueChanged.AddListener(ValueChanged);
  22.         _value = _slider.value;
  23.         _fillImage.color = _gradient.Evaluate(0f);
  24.     }
  25.  
  26.     public void ChangeValue(float value)
  27.     {
  28.         _value = value;
  29.         ChangeColor();
  30.         MoveSlider();
  31.     }
  32.  
  33.     private void ChangeColor()
  34.     {
  35.         _fillImage.color = _gradient.Evaluate(1f - _slider.normalizedValue);
  36.     }
  37.  
  38.     private void MoveSlider()
  39.     {
  40.         if (_slider.normalizedValue <= 0.01f)
  41.         {
  42.             HideSlider();
  43.             return;
  44.         }
  45.         _slider.value = Mathf.MoveTowards(_slider.value, _value, _speed);
  46.     }
  47.  
  48.     private void HideSlider()
  49.     {
  50.         _flameEffect.Stop();
  51.         _fillImage.color = Color.black;
  52.     }
  53.  
  54.     private void ValueChanged(float value)
  55.     {
  56.         if (_isFlameStop)
  57.         {
  58.             _flameEffect.Play();
  59.             _isFlameStop = !_isFlameStop;
  60.         }
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement