131 lines
3.4 KiB
C#
131 lines
3.4 KiB
C#
using DG.Tweening;
|
|
|
|
namespace LoveLegend
|
|
{
|
|
using System.Collections;
|
|
using FairyGUI;
|
|
using UnityEngine;
|
|
using Object = UnityEngine.Object;
|
|
|
|
public class LoadingUI : BaseUI
|
|
{
|
|
private LoadingUICtrl ctrl;
|
|
private LoadingModel model;
|
|
private FGUI.ZM_Loading_25.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 = "ZM_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()
|
|
{
|
|
tweener.Kill();
|
|
}
|
|
|
|
protected override void OnBind()
|
|
{
|
|
ui = baseUI as FGUI.ZM_Loading_25.com_loading;
|
|
}
|
|
|
|
protected override void OnOpenBefore(object args)
|
|
{
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenBgUI_Open);
|
|
ui.com_pb.max = 100;
|
|
ui.com_pb.value = 0;
|
|
|
|
CrazyAsyKit.StartCoroutine(SetProgress());
|
|
}
|
|
|
|
public IEnumerator SetProgress()
|
|
{
|
|
tweener = DOTween.To(() => ui.com_pb.value,
|
|
x => ui.com_pb.value = x, 98, 12.0f);
|
|
|
|
yield return tweener;
|
|
}
|
|
|
|
private void Reconnection(object obj = null) {
|
|
CrazyAsyKit.StartCoroutine(SetProgress());
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
protected override void RemoveListener()
|
|
{
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.UpdateHotFixMax, OnUpdateHotFixMax);
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.UpdateHotFixProgress, OnUpdateHotFixProgress);
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.Network_reconnection, Reconnection);
|
|
}
|
|
|
|
#endregion
|
|
|
|
private bool isAgree = true;
|
|
|
|
public void CheckAgree()
|
|
{
|
|
tweener.Kill();
|
|
tweener = DOTween.To(() => ui.com_pb.value,
|
|
x => ui.com_pb.value = x, 100, 0.1f).OnComplete(() =>
|
|
{
|
|
if (!isAgree) return;
|
|
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 (obj != null)
|
|
{
|
|
tweener.Kill();
|
|
var value = (int)obj;
|
|
pb_loading.value = value;
|
|
}
|
|
}
|
|
}
|
|
} |