public void Run() { message.gameObject.SetActive(false); Vector2Int start = new Vector2Int(1, size - 2); Vector2Int finish = new Vector2Int(size - 2, 1); if (!Astar.FindPath(labGrid, start, finish)) { message.gameObject.SetActive(true); message.text = "NO PATH AVAILABLE"; message.color = Color.red; return; } IsAlgorithmRunning = true; bool isTimeout; List <Child> bestOfGeneration = GAController.GeneticAlgorithm(labGrid.grid, size, start, finish, out isTimeout); if (bestOfGeneration != null) { message.gameObject.SetActive(true); message.text = "PATH FOUND"; message.color = Color.blue; StartCoroutine(ShowGenerations(bestOfGeneration, start, finish)); } else if (isTimeout) { message.gameObject.SetActive(true); message.text = "TIMEOUT"; message.color = Color.blue; } }