62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			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();
 | |
|         }
 | |
|     }
 | |
| } |