using System.Threading.Tasks; using DG.Tweening; using GameCore; using TMPro; using UnityEngine; public class ToastPanel : MonoBehaviour { private TMP_Text text_toast; private CanvasGroup canvasGroup; static ToastPanel _instance; static bool isShowing = false; public static async void Show(string text) { await ShowInit(); if (_instance == null) { return; } _instance.gameObject.SetActive(false); _instance.transform.SetAsLastSibling(); _instance.SetToast(text); _instance.gameObject.SetActive(true); } private static async Task ShowInit() { if (!isShowing) { isShowing = true; GameObject loading = await UIManager.Instance.GetUIAsync(UITypes.ToastPanel); if (loading != null) { _instance = loading.GetComponent(); } } } private void OnDestroy() { isShowing = false; } private void Awake() { text_toast = transform.Find("resource/p_text").GetComponent(); canvasGroup = GetComponent(); } void SetToast(string text) { text_toast.text = text; } }