mergemilitary/Assets/MMOModule/Scripts/MMOUIs/MMOUILoading.cs

62 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
namespace MMO
{
public class MMOUILoading : MMOUIBase
{
public Action DelInitOver;
public Action DelLoadOver;
[SerializeField] GameObject mGobFirstSign;
[SerializeField] Text mTxtProgress;
[SerializeField] Image mImgProgress;
private Tweener mTween;
public override void OnOpen()
{
base.OnOpen();
mGobFirstSign.SetActive(!MMOUserData.Instance.HasFirstLoaded);
mImgProgress.fillAmount = 0;
mTween = mImgProgress.DOFillAmount(UnityEngine.Random.Range(0.93f, 0.97f), MMOUserData.Instance.HasFirstLoaded ? 1 : 10);
mTween.onUpdate = UpdateText;
mTween.onComplete = OnInitOver;
}
public void FinishRest()
{
if (mTween != null)
{
mTween.onUpdate = null;
mTween.onComplete = null;
mTween.Kill();
}
mTween = mImgProgress.DOFillAmount(1, 0.5f);
mTween.onUpdate = UpdateText;
mTween.onComplete = OnLoadOver;
}
private void UpdateText()
{
mTxtProgress.text = string.Format("LOADING...{0:f0}%", Mathf.Clamp(mImgProgress.fillAmount * 100, 0, 100));
}
private void OnInitOver()
{
DelInitOver?.Invoke();
}
private void OnLoadOver()
{
DelLoadOver?.Invoke();
}
}
}