using System.Collections; using Obvious.Soap; using TMPro; using UnityEngine; public class UI_ReelDragNotifyPanel : MonoBehaviour { [SerializeField] private TextMeshProUGUI percentText; [SerializeField] private TextMeshProUGUI nameText; public FloatVariable reelSpeed; public FloatVariable dragSetting; private CanvasGroup _canvasGroup; public float shadeFadeTime = 0.35f; public float shadeDelay = 1f; private void Awake() { _canvasGroup = GetComponent(); _canvasGroup.alpha = 0f; } private void OnEnable() { reelSpeed.OnValueChanged += ReelSpeedOnOnValueChanged; dragSetting.OnValueChanged += DragSettingOnOnValueChanged; } private void OnDisable() { reelSpeed.OnValueChanged -= ReelSpeedOnOnValueChanged; dragSetting.OnValueChanged -= DragSettingOnOnValueChanged; } private void DragSettingOnOnValueChanged(float obj) { nameText.text = "Drag"; percentText.text = Mathf.RoundToInt(obj * 100f) + "%"; EnablePanel(); } private void ReelSpeedOnOnValueChanged(float obj) { nameText.text = "Reel"; percentText.text = Mathf.RoundToInt(obj * 100f) + "%"; EnablePanel(); } private void EnablePanel() { _canvasGroup.alpha = 1f; StopAllCoroutines(); StartCoroutine(Shade()); } private IEnumerator Shade() { yield return new WaitForSeconds(shadeDelay); while (true) { _canvasGroup.alpha -= Time.deltaTime * shadeFadeTime; if (!(_canvasGroup.alpha <= 0f)) { yield return null; continue; } break; } } }