private IEnumerator StartUIHandle() { while (GameTasks.Count > 0) { IGameTask task = GameTasks.Dequeue(); StartCoroutine(task.Action()); LoadingInfo.text = Descriptions.Dequeue(); while (!task.IsDone || task.Progress != ProgressBar.Value) { ProgressBar.Value = Mathf.MoveTowards(ProgressBar.Value, task.Progress, Time.deltaTime); yield return(null); } ProgressBar.Value = 0; } Panel.SetActive(false); yield break; }
public void Add(IGameTask task, string description = "") { GameTasks.Enqueue(task); Descriptions.Enqueue(description); }