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(); | |||
|  |         } | |||
|  |     } | |||
|  | } |