Files
CaptainDiceDubloons_IOS_unity/Assets/Scripts/ModuleUI/Loading/LoadingUI.cs
T
2026-06-01 10:36:42 +08:00

165 lines
4.6 KiB
C#

using System.Collections;
using System.Globalization;
using DG.Tweening;
using FairyGUI;
using FGUI.Loading_25;
using UnityEngine;
namespace ChillConnect
{
public class LoadingUI : BaseUI
{
private LoadingUICtrl ctrl;
private LoadingModel model;
private com_loading ui;
protected GProgressBar pb_loading;
private Tweener tweener;
protected int currValue;
public LoadingUI(LoadingUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.LoadingUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "Loading_25";
uiInfo.assetName = "com_loading";
uiInfo.layerType = UILayerType.Loading;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = false;
}
#region 生命周期
protected override void OnInit()
{
}
protected override void OnClose()
{
}
protected override void OnBind()
{
ui = baseUI as com_loading;
}
protected override void OnOpenBefore(object args)
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenBgUI_Open);
ui.com_pb.max = 100;
ui.com_pb.value = 0;
ui.com_pb.text_per.text = ui.com_pb.value + "%";
// if (!GameHelper.IsConnect()) {
// return;
// }
// CrazyAsyKit.StartCoroutine(SetProgress(50));
// var splashCanvas = GameObject.Find("SplashCanvas");
// if (splashCanvas != null)
// {
// splashCanvas.SetActive(false);
// Object.Destroy(splashCanvas);
// }
if (PlayerPrefs.GetInt("OpenAD", 1) == 0) closeMask();
closeMask();
}
public IEnumerator SetProgress(int max)
{
tweener.Kill();
tweener = DOTween.To(() => ui.com_pb.value,
x => ui.com_pb.value = x, max, 12f)
.OnUpdate(() =>
{
ui.com_pb.text_per.text = ui.com_pb.value + "%";
});
yield return tweener;
}
private void Reconnection(object obj = null)
{
//CrazyAsyKit.StartCoroutine(SetProgress(97));
}
protected override void OnOpen(object args)
{
}
#endregion
#region 消息
protected override void AddListener()
{
GameDispatcher.Instance.AddListener(GameMsg.UpdateHotFixMax, OnUpdateHotFixMax);
// GameDispatcher.Instance.AddListener(GameMsg.UpdateHotFixProgress, OnUpdateHotFixProgress);
GameDispatcher.Instance.AddListener(GameMsg.Network_reconnection, Reconnection);
// GameDispatcher.Instance.AddListener(GameMsg.CloseMask, closeMask);
}
protected override void RemoveListener()
{
GameDispatcher.Instance.RemoveListener(GameMsg.UpdateHotFixMax, OnUpdateHotFixMax);
// GameDispatcher.Instance.RemoveListener(GameMsg.UpdateHotFixProgress, OnUpdateHotFixProgress);
GameDispatcher.Instance.RemoveListener(GameMsg.Network_reconnection, Reconnection);
// GameDispatcher.Instance.RemoveListener(GameMsg.CloseMask, closeMask);
}
#endregion
private void closeMask(object a = null)
{
ui.com_pb.visible = true;
OnUpdateHotFixProgress(97);
}
private bool loading = false;
private bool isAgree = true;
public void CheckAgree()
{
if (!isAgree) return;
tweener.Kill();
ctrl.CloseUI();
}
private void OnUpdateHotFixMax(object obj)
{
if (obj != null)
{
var max = (int)obj;
// ui.pb_loading.max = max;
}
}
private void OnUpdateHotFixProgress(object obj)
{
if (loading) return;
if (obj != null)
{
loading = true;
tweener.Kill();
var value = (int)obj;
// pb_loading.value = value;
tweener = DOTween.To(() => ui.com_pb.value,
x => ui.com_pb.value = x, value, 12f)
.OnUpdate(() =>
{
ui.com_pb.text_per.text = (int)(ui.com_pb.value) + "%";
});
}
}
}
}