Exemplo n.º 1
0
    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");
    }
Exemplo n.º 2
0
 private void StartTaskAddCoroutine(StageSO stage)
 {
     taskAddCoroutine = StartCoroutine(_TaskAddCoroutine(stage));
 }
Exemplo n.º 3
0
 public void StartStage(StageSO stage)
 {
     FlushTaskManager();
     StartTaskAddCoroutine(stage);
 }