protected override List<SpawnObj> ChooseSpawn() { float chance = UnityEngine.Random.Range(0f, 100f); List<SpawnObj> newSpawn = new List<SpawnObj>(); foreach (SpawnType type in SpawnTypes) { if (chance >= type.LowerChance && chance <= type.UpperChance) { if (PassPrefab) { newSpawn.Add(type.Prefab); } else { for (int i = 0; i < NumObjPerSpawn; ++i) { throw new Exception("FIX THIS DUSTIN!!"); SpawnObj newObj = new SpawnObj(); // UnitManager.Instance.GetUnit(type.Prefab); newSpawn.Add(newObj); spawnObjs.Add(newObj); } } break; } } return newSpawn; }
// Start is called before the first frame update private void OnCollisionEnter2D(Collision2D collision) { SpawnObj Sobj = collision.gameObject.GetComponent <SpawnObj>(); if (Sobj != null) { GameObject spawned = Sobj.Spawn(toSpawn); if (spawned != null) { spawned.GetComponent <TimeStaticOBJ>().SetPivot(TimeChange.CurrentTime); TouchManager.Instance.eraseReference(); Destroy(this.gameObject); } } }
public IEnumerator Generate() { yield return(new WaitForSeconds(HardTime)); if (Active) { Random.InitState((int)System.DateTime.Now.Ticks); NeedToSpawn = new bool[4]; for (i = 0; i < NumberOfSpawners; i++) { NeedToSpawn [i] = false; } i = NumberOfSpawners; if (PrevArray [0] == false) { NeedToSpawn [0] = true; i--; } if (PrevArray [NumberOfSpawners - 1] == false) { NeedToSpawn [NumberOfSpawners - 1] = true; i--; } i = Random.Range(0, i); while (i > 0) { int buf = Random.Range(0, NumberOfSpawners - 1); if (NeedToSpawn [buf] == false) { i--; NeedToSpawn [buf] = true; } } PrevArray = NeedToSpawn; GameObject[] Spawners = GameObject.FindGameObjectsWithTag("Spawner"); foreach (GameObject SpawnObj in Spawners) { SpawnObj.GetComponent <SpawnerScript> ().Spawn(); } StartCoroutine(Generate()); } }
protected virtual List<SpawnObj> DoSpawn_Prefab(SpawnObj prefab) { return new List<SpawnObj>(); }