using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; using static UnityEngine.Rendering.DebugUI; public class ProcessTipPanel : MonoBehaviour { public Image image; public TextMeshProUGUI textMeshProUGUI; /// <summary> /// 是否启用进度 /// </summary> private bool isCheck=false; /// <summary> /// 当前进入 /// </summary> private float currentProcess=0; /// <summary> /// 是否结束 /// </summary> private bool isOver=false; /// <summary> /// 结果回调 /// </summary> private Action<bool> tmpback; /// <summary> /// 开始走进度 /// </summary> /// <param name="back"></param> public void StartProcess(Action<bool> back) { this.isCheck=true; tmpback = back; Debug.Log("开始核对和抄录"); textMeshProUGUI.text = "核对中"; } /// <summary> /// 中止走进度 /// </summary> public void StopProcess() { this.isCheck = false; currentProcess = 0; image.fillAmount = currentProcess; tmpback(false); } void Update() { if (!isOver) { if (isCheck) { currentProcess = Mathf.Clamp01(currentProcess + Time.deltaTime * 0.3f); image.fillAmount = currentProcess; if (currentProcess == 1) { isOver = true; ThisDestroy(); } } if (Input.GetMouseButtonUp(0)) { StopProcess(); isOver = true; Destroy(gameObject); } } } /// <summary> /// 核对记录成功 /// </summary> private void ThisDestroy() { Debug.Log("核对和抄录完成!"); textMeshProUGUI.text = "核对完成"; tmpback(true); Destroy(gameObject); } }