private IEnumerator CreateEnemy(SingleEnemy enemy) { EnemyTrajectory component = null; for (int i = 0; i < enemy.count; i++) { while (!MainSettings.NotPause) { yield return(null); } GameObject go = MainSettings.CurPoolManager.GetObject(enemy.enemyObj.name, enemy.selfPosition, Quaternion.Euler(0, 0, 0)); if (go != null) { component = go.transform.GetComponent <EnemyTrajectory>(); if (component != null) { component.Trajectory = enemy.trajectory; component.speed = enemy.speed; MainSettings.Enemylist.Add(go); yield return(new WaitForSeconds(enemy.timeDelay)); } else { MainSettings.Enemylist.Remove(go); go.GetComponent <PoolObject>().ReturnToPool(); yield break; } } } }
/// <summary> /// Adds enemies to the _allEnemies list and activates them when added /// </summary> /// <param name="enemiesToAdd">The enemies to add</param> private void AddEnemies(List <MoveAttack> enemiesToAdd) { // Add each enemy to the list foreach (MoveAttack singEnemy in enemiesToAdd) { if (singEnemy != null) { SingleEnemy singEnemyScriptRef = singEnemy.GetComponent <SingleEnemy>(); if (singEnemyScriptRef != null && !_allEnemies.Contains(singEnemyScriptRef)) { // Add the enemy _allEnemies.Add(singEnemyScriptRef); // Turn them active singEnemy.gameObject.SetActive(true); } } } }
public void Initiate(SingleEnemy settings) { this.startPos = settings.StartPos; this.endPos = settings.EndPos; this.movementType = settings.Movement; }
void Start() { SingleEnemy en; List <SingleEnemy> lst; #region Creating Scenario (sin center) lst = new List <SingleEnemy>(); en = new SingleEnemy(Enemy02, 0.2f, 10, 1, 4, new Vector3(0, 15, -10)); lst.Add(en); Checkpoints.Add(390, new EnemyInstance(lst, true)); #endregion #region Creating Scenario (droids) lst = new List <SingleEnemy>(); lst.Add(new SingleEnemy(Enemy04, 0f, 1, 6, 1, new Vector3(0, 15, -10))); lst.Add(new SingleEnemy(Enemy04, 0f, 1, 7, 1, new Vector3(0, 15, -10))); lst.Add(en); Checkpoints.Add(385, new EnemyInstance(lst, true)); #endregion #region Creating Scenario (sin left) lst = new List <SingleEnemy>(); en = new SingleEnemy(Enemy02, 0.2f, 10, 2, 4, new Vector3(-15, 15, -10)); lst.Add(en); Checkpoints.Add(380, new EnemyInstance(lst, true)); #endregion #region Creating Scenario (sin right) lst = new List <SingleEnemy>(); en = new SingleEnemy(Enemy02, 0.2f, 10, 3, 4, new Vector3(15, 15, -5)); lst.Add(en); Checkpoints.Add(370, new EnemyInstance(lst, true)); #endregion #region Creating Scenario (bezie01 Left) lst = new List <SingleEnemy>(); en = new SingleEnemy(Enemy06, 0.25f, 20, 10, 4, new Vector3(-30, 15, -5)); lst.Add(en); Checkpoints.Add(360, new EnemyInstance(lst, true)); #endregion #region Creating Scenario (bezie01 right) lst = new List <SingleEnemy>(); en = new SingleEnemy(Enemy07, 0.25f, 20, 10, 4, new Vector3(30, 15, -5)); lst.Add(en); Checkpoints.Add(350, new EnemyInstance(lst, true)); #endregion #region Creating Scenario (Wall) lst = new List <SingleEnemy>(); for (int i = -36; i < 36; i = i + 3) { en = new SingleEnemy(Enemy03, 0f, 1, 4, 1, new Vector3(i, 15, -10)); lst.Add(en); } Checkpoints.Add(340, new EnemyInstance(lst, true)); #endregion #region Creating Scenario (droids) lst = new List <SingleEnemy>(); //lst.Add(new SingleEnemy(Enemy04, 0f, 1, 6, 1, new Vector3(0, 15, -10))); //lst.Add(new SingleEnemy(Enemy04, 0f, 1, 7, 1, new Vector3(0, 15, -10))); lst.Add(new SingleEnemy(Enemy05, 0f, 1, 6, 1, new Vector3(0, 15, -10))); lst.Add(new SingleEnemy(Enemy05, 0f, 1, 7, 1, new Vector3(0, 15, -10))); Checkpoints.Add(338, new EnemyInstance(lst, true)); #endregion #region Creating Scenario (droids) lst = new List <SingleEnemy>(); //lst.Add(new SingleEnemy(Enemy04, 0f, 1, 6, 1, new Vector3(0, 15, -10))); //lst.Add(new SingleEnemy(Enemy04, 0f, 1, 7, 1, new Vector3(0, 15, -10))); lst.Add(new SingleEnemy(Enemy08, 0f, 1, 10, 1, new Vector3(0, 15, -10))); Checkpoints.Add(325, new EnemyInstance(lst, true)); #endregion StartCoroutine(CheckPoints()); StartCoroutine(CheckPoints()); MainSettings.NotPause = true; }