14 public void Init(
string hint)
16 this.text.text = hint;
17 LayerProgress.completed =
false;
18 LayerProgress.isActive =
true;
19 LayerProgress.progress = (this.value = 0f);
21 this.cg.DOFade(1f, 0.1f).SetEase(Ease.InCubic).SetDelay(0.2f);
27 if (this.onCancel !=
null && Input.GetKeyDown(KeyCode.Escape))
29 LayerProgress.isActive =
false;
34 this.minTime -= Time.deltaTime;
37 LayerProgress.progress += this.minProgress * Time.deltaTime;
39 this.value = Mathf.Lerp(this.value,
LayerProgress.progress, Time.deltaTime *
this.speed);
40 if (this.useUnitask && this.unitask.Status == UniTaskStatus.Succeeded)
42 LayerProgress.completed =
true;
44 this.bar.value = Mathf.Clamp(this.value, 0f, 1f);
47 LayerProgress.progress = 1f;
49 this.endTime -= Time.deltaTime;
50 if (this.endTime > 0f)
54 LayerProgress.isActive =
false;
56 if (this.onComplete !=
null)
64 public static LayerProgress StartAsync(
string text, UniTask<bool> task, Action onCancel =
null)
67 layerProgress.Init(text);
68 layerProgress.useUnitask =
true;
69 layerProgress.unitask = task;
70 layerProgress.onCancel = onCancel;
75 public static LayerProgress Start(
string text, Action onComplete =
null)
78 layerProgress.Init(text);
79 layerProgress.onComplete = onComplete;
84 public static void Start(
string text, Action thread, Action onComplete)
86 if (
ELayer.core.debug.dontUseThread)
93 layerProgress.Init(text);
94 layerProgress.onComplete = onComplete;
95 ThreadPool.QueueUserWorkItem(delegate(
object a)
98 LayerProgress.completed =
true;
103 public static bool completed;
106 public static bool isActive;
109 public static float progress;
115 public float minTime;
118 public float endTime;
121 public float minProgress;
130 public Action onComplete;
133 public Func<bool> funcComplete;
136 public UniTask<bool> unitask;
139 public Action onCancel;
142 public bool useUnitask;
145 public CanvasGroup cg;