public void Reset() { floorNumber = startingFloorNumber; if (fixedTower) { if (towerNumber < 0) { towerNumber = 0; } if (floors == null || towerNumber != lastTowerNumber || !environmentParameters.Compare(floorGenerator.environmentParameters)) { floorGenerator.SetEnvironmentParams(environmentParameters); floors = floorGenerator.GenerateAllFloors(towerNumber, totalFloors); lastTowerNumber = towerNumber; } } else { // Using System.Random to choose tower number so we don't end up choosing based on // the previously fixed seed for UnityEngine.Random. towerNumber = new System.Random().Next(ObstacleTowerAcademy.MaxSeed); lastTowerNumber = towerNumber; floors = floorGenerator.GenerateAllFloors(towerNumber, totalFloors); } Debug.Log("Resetting episode with seed: " + towerNumber); }