smart-interactive-display/Assets/GadGame/Scripts/ReadyPopUp.cs

58 lines
1.6 KiB
C#
Raw Normal View History

using System;
using Cysharp.Threading.Tasks;
using DG.Tweening;
2024-06-19 02:32:17 -07:00
using GadGame.Event.Type;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace GadGame
{
public class ReadyPopUp : MonoBehaviour
{
[SerializeField] private TextMeshProUGUI _time;
[SerializeField] private Image _fillImage;
[SerializeField] private Transform _content;
[SerializeField] private CanvasGroup _canvasGroup;
2024-06-19 02:32:17 -07:00
[SerializeField] private FloatEvent ReadyCountDown;
private float _readyTime;
2024-06-19 02:32:17 -07:00
private void Start()
{
2024-06-19 02:32:17 -07:00
ReadyCountDown.Register(OnReadyCountdown);
// _mainFlow.OnReady += OnReady;
_content.localScale = Vector3.zero;
}
2024-04-18 19:20:59 -07:00
private void OnDestroy()
{
_canvasGroup.DOKill();
_content.DOKill();
2024-06-19 02:32:17 -07:00
ReadyCountDown.Unregister(OnReadyCountdown);
// _mainFlow.OnReady -= OnReady;
}
private async void OnReady(bool ready)
{
if (ready)
{
await _canvasGroup.DOFade(1, 0.1f);
await _content.DOScale(Vector3.one, 0.2f);
}
else
{
await _content.DOScale(Vector3.zero, 0.2f);
await _canvasGroup.DOFade(0, 0.1f);
}
}
private void OnReadyCountdown(float duration)
{
_time.text = Mathf.CeilToInt(duration).ToString();
_readyTime = 5 - duration;
_fillImage.fillAmount = _readyTime / 5;
}
}
}