Example #1
0
 private void SetLaneSpawner()
 {
     AtkSpawner[] spawners = FindObjectsOfType <AtkSpawner>();
     foreach (AtkSpawner spawner in spawners)
     {
         bool isCloseEnough =
             (Mathf.Abs(spawner.transform.position.y - transform.position.y) <= 0.4);
         if (isCloseEnough)
         {
             myLaneSpawner = spawner;
         }
     }
 }
Example #2
0
 // Start is called before the first frame update
 void Start()
 {
     GameObject[] listObject = GameObject.FindGameObjectsWithTag("atkSpawner");
     foreach (var obj in listObject)
     {
         AtkSpawner spawnerTmp = obj.GetComponent <AtkSpawner>();
         if (spawnerTmp == null)
         {
             continue;
         }
         listSpawner.Add(spawnerTmp);
     }
     StartCoroutine(StartWave());
 }
Example #3
0
 private void SpawnAttacker()
 {
     if (listSpawner.Count <= 0)
     {
         return;
     }
     if (wave == null)
     {
         return;
     }
     string[] listCreep = wave.GetNextCreep();
     if (listCreep.Length <= 0)
     {
         return;
     }
     foreach (var creep in listCreep)
     {
         //FIXME: why last lane not spawn
         int        idxOfSpawner = Random.Range(0, listSpawner.Count);
         AtkSpawner spawner      = listSpawner[idxOfSpawner];
         spawner.SpawnAttacker(Constant.GetPrefabPath(creep), wave);
     }
     //Debug.Log("wave left: " + wave.NumberCreepLeft);
 }