上海虹口龙之梦项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

66 lines
1.8 KiB

using System;
using System.Collections;
using UniRx;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.AddressableAssets;
public class MessageBox : MonoBehaviour
{
private static MessageBox Instance;
public Text Message;
public Button SetButton;
public Button CloseButton;
public Action action;
void Start()
{
SetButton.OnClickAsObservable()
.Subscribe(_ =>
{
action?.Invoke();
Destroy(gameObject);
});
CloseButton.OnClickAsObservable()
.Subscribe(_ =>
{
Destroy(gameObject);
});
}
public static void Show(string info, Color Color, Action action = null)
{
Addressables.LoadAssetAsync<GameObject>("MessageBoxPanel").Completed += Loaded =>
{
Instance = Instantiate(Loaded.Result).GetComponent<MessageBox>();
Instance.transform.SetParent(UIManager.GetCanvas().transform.Find("Popup"), false);
Instance.Message.text = info;
Instance.Message.color = Color;
Instance.action = action;
};
}
public static void Show(string info, Color Color, float time)
{
Addressables.LoadAssetAsync<GameObject>("MessageBoxPanel").Completed += Loaded =>
{
Instance = Instantiate(Loaded.Result).GetComponent<MessageBox>();
Instance.transform.SetParent(UIManager.GetCanvas().transform.Find("Popup"), false);
Instance. Message.text = info;
Instance. Message.color = Color;
Instance.StartCoroutine(Instance.ShowCoroutine(time));
};
}
IEnumerator ShowCoroutine(float time)
{
yield return new WaitForSeconds(time);
Destroy(gameObject);
}
}