public static LocalWorldGenerator Create() { if (worldGenerators == null) { LoadGenerators(); } //UnityEngine.Random.InitState(seed); LocalWorldGenerator newLWG = Instantiate <LocalWorldGenerator>(worldGenerators[UnityEngine.Random.Range(1, worldGenerators.Count) - 1]); newLWG.radius = UnityEngine.Random.Range(newLWG.localMinRadius, newLWG.localMaxRadius); //UnityEngine.Random.InitState(seed); Room firstRoom = null; newLWG.InitializeRoomList(); List <Room> copyRooms = new List <Room>(newLWG.rooms); //int i = 1; while (firstRoom == null && copyRooms.Count > 0) { int index = UnityEngine.Random.Range(1, copyRooms.Count) - 1; //i++; if (copyRooms[index].canBeFirst) { firstRoom = copyRooms[index]; } else { copyRooms.RemoveAt(index); } } if (firstRoom == null) { Debug.LogError("No suitable room for generation's start exists in this generator, duh !"); } else { firstRoom.position = Vector3.zero; firstRoom.distanceFromCenter = 0; newLWG.localWorld = new Dictionary <Vector3, Room>(); newLWG.localWorld.Add(Vector3.zero, firstRoom); newLWG.GenerateCSP(); newLWG.BacktrackingSearch(); } return(newLWG); }
// Use this for initialization void Start() { LocalWorldGenerator.Create((int)Random.value * 250000); }
// Use this for initialization void Start() { LocalWorldGenerator.Create(); }