// Update is called once per frame void Update() { bool isUpdateStop = (gameState == SIMUL_STATE.INIT) || isSimulPause == true; if (isUpdateStop) { return; } switch (gameState) { case SIMUL_STATE.SIMULATION: DoSimulation(); break; case SIMUL_STATE.CHECK_FITNESS: geneticManager.StartFitnessCheck(); break; case SIMUL_STATE.SELECTION_AND_CROSSOVER: geneticManager.StartSelectionAndCrossOver(); MoveNextStep(); break; case SIMUL_STATE.MUTATION: geneticManager.StartMutation(); MoveNextStep(); break; } if (isMoveNext) { MoveNextStep_Internal(); if (gameState == SIMUL_STATE.SIMULATION) { StartNextGeneration(); } } }