// Update is called once per frame void Update() { switch (generateState) { case State.PLAY: if (paused) { generateState = State.PAUSE; break; } if (step) { generationAlgorithm.Step(); generateState = State.PAUSE; paused = true; break; } iterations += genSpeed; while (iterations >= 1f) { iterations -= 1f; if (generationAlgorithm.Step()) { generateState = State.FINISHED; break; } } break; case State.FINISHED: uiHandler.FinishedGeneration(); break; default: break; } }