GameObject SpawnStructure(GameObject prefab) { int tries = 0; GameObject go = null; while (tries++ < 5) { SpawningArea spawnArea = spawningAreas[Random.Range(0, spawningAreas.Count)]; Rect spawningArea = spawnArea.area; Vector2 spawnPoint = spawningTrees ? spawnArea.GetRandomSpawnPoint() : spawnArea.GetEdgeSpawnPoint(); Point p = new Point { x = spawnPoint.x, y = spawnPoint.y }; if (previouslySpawnedBuildings.Contains(p)) { continue; } go = Instantiate(prefab, Jitter(spawnPoint), Quaternion.identity, transform); previouslySpawnedBuildings.Add(p); break; } return(go); }
private void Awake() { if (instance != null && instance != this) { Destroy(this.gameObject); return; } else { instance = this; //DontDestroyOnLoad(Instance); } }