123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
-
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- [System.Serializable]
- public class EnemySpwan_property
- {
- public string name;
- public int enemyLevel;
- public int total;
- public EnemyMovement enemy;
- }
- public class EnemySpawner : MonoBehaviour {
- public float WaveReloadTime;
- public float EnemyInterval;
- float currReloadTime;
- float currInterval;
- public List<EnemySpwan_property> enemyList = new List<EnemySpwan_property>();
- int currentWave = 0;
- public float currentReloadTime { get { return currReloadTime; } }
-
- void Start () {
- currReloadTime = 5;
- StartCoroutine(EnemySpawn());
- }
-
-
-
-
-
- IEnumerator EnemySpawn()
- {
- while (currentWave < enemyList.Count)
- {
- var EL = enemyList[currentWave];
- if (EL.total > 0 && currReloadTime <= 0)
- {
- if (TimeDown(ref currInterval))
- {
- EnemyMovement enemy = EL.enemy;
- enemy.level = EL.enemyLevel;
- Instantiate(enemy, transform.position, Quaternion.identity);
- enemyList[currentWave].total--;
- currInterval = EnemyInterval;
- }
- }
- else
- {
- TimeDown(ref currReloadTime);
-
- if (enemyList[currentWave].total <= 0)
- {
- currentWave++;
- currReloadTime = WaveReloadTime;
- }
- }
- MonsterInfo.instance.TimeUpdate(currentReloadTime.ToString("f2"));
- if (EL.total > 0 && currReloadTime <= 0)
- {
-
- MonsterInfo.instance.TimeUpdate(EL.name + " Lv: " + EL.enemyLevel);
- }
- yield return new WaitForFixedUpdate();
- }
- }
-
-
-
-
-
-
- bool TimeDown(ref float time)
- {
- time -= Time.deltaTime;
- if (time <= 0) { time = 0; return true; }
- return false;
- }
- EnemyMovement SetEnemy(EnemyMovement enemy,EnemySpwan_property ESP)
- {
- enemy.level = ESP.enemyLevel;
- enemy.name = ESP.name;
- return enemy;
- }
- }
|