TheInitialProject/Assets/Scripts/UI/Tips/TipWaitUnit.cs
2024-10-23 16:59:02 +08:00

69 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class TipWaitUnit : TipUnit
{
public Image m_spWait;
public TextMeshProUGUI tmpLeftSec;
public WaitData m_Data;
public float m_waitTime = 0f; // 当前等待时间
public float m_speed = 20 * 2.5f; // 旋转速度
public override void Awake()
{
base.Awake();
m_spWait = transform.Find("spWait/imgRobot").GetComponent<Image>();
tmpLeftSec = transform.Find("tmpLeftSec").GetComponent<TextMeshProUGUI>();
}
private void OnEnable()
{
Inform.Listen(eInformId.TipWaitClose, Close);
tmpLeftSec.text = string.Empty;
}
private void OnDisable()
{
Inform.Cancel(eInformId.TipWaitClose, Close);
}
public override void Refresh(TipData _Data)
{
base.Refresh(_Data);
m_waitTime = 0f;
m_Data = (_Data as WaitData);
}
// Update is called once per frame
void Update()
{
m_waitTime += Time.deltaTime;
m_spWait.transform.Rotate(Vector3.forward, -m_speed * Time.deltaTime);
if (m_waitTime > m_Data.m_waitTimeMax)
{
tmpLeftSec.text = string.Empty;
Tips.Instance.ShowDialog("等待超时");
Close();
}
else
{
float secLeft = m_Data.m_waitTimeMax - m_waitTime;
tmpLeftSec.text = secLeft.ToString("N1");
}
}
void Close()
{
m_waitTime = 0f;
gameObject.SetActive(false);
}
}