void Awake() { if (instance == null) { instance = this; } int index = 0; foreach (UnicornEnum.UnicornTypeEnum type in Enum.GetValues(typeof(UnicornEnum.UnicornTypeEnum))) { instance.unicornBackup.Add(type, instance.unicornTypes[index]); instance.unicornCollection.Add(type, new List <GameObject>()); instance.unicornCollection.TryGetValue(type, out List <GameObject> value); for (int i = 0; i < cachedUnicorns; i++) { GameObject unicorn = Instantiate(unicornTypes[index]); value.Add(unicorn); unicorn.gameObject.SetActive(false); } index++; } }
public static Sprite SpawnNewUnicorn(UnicornEnum.UnicornTypeEnum type) { Transform spawn = instance.spawnLocations[Random.Range(0, instance.spawnLocations.Count)]; Vector3 location = spawn.position; GameObject spawned = UnicornPool.SpawnUnicorn(type); UnicornStats stats = spawned.GetComponent <UnicornStats>(); spawned.transform.position = location; spawned.SetActive(true); stats.SetSpawn(spawn); instance.spawnLocations.Remove(spawn); instance.activeUnicorns.Add(spawned); ParticleSpawner.SpawnParticleEffect(ParticleSpawner.Particles.UnicornSpawn, location); return(stats.GetSprite()); }
private static void SpawnAlarmCallBack() { try { if (Household.ActiveHousehold == null) { return; } UnicornPool.sSpawnAlarm = AlarmHandle.kInvalidHandle; if (RandomUtil.RandomChance01(UnicornPool.kChanceOfSpawningUnicorn)) { using (BaseWorldReversion reversion = new BaseWorldReversion()) { UnicornPool.SpawnNPCUnicorn(false); } } } catch (Exception e) { Common.Exception("SpawnAlarmCallBack", e); } }
public void GetPooled() { UnicornPool.AddToList(colorType, gameObject); }