IEnumerator _TaskAddCoroutine(StageSO stage) { currentStage = stage; float runningTime = 0; int taskSpawnCount = 0; AddTaskWithSO(getRandomTaskSO()); taskSpawnCount++; while (true) { runningTime += Time.deltaTime; if (taskSpawnCount >= stage.numOfTasks) { break; } if (runningTime >= stage.timeBetweenTaskAdd || ongoingTasks.Count <= 0) { AddTaskWithSO(getRandomTaskSO()); taskSpawnCount++; runningTime = 0; } yield return(null); } while (TaskManager.instance.ongoingTasks.Count > 0) { yield return(null); } GameManager.instance.NextStage(); Debug.Log("Next stage"); }
private void StartTaskAddCoroutine(StageSO stage) { taskAddCoroutine = StartCoroutine(_TaskAddCoroutine(stage)); }
public void StartStage(StageSO stage) { FlushTaskManager(); StartTaskAddCoroutine(stage); }