void spawnNewGroup(RouteScript targetRoute) { List <EnemyGroupAttributes> listAvailableGroups = new List <EnemyGroupAttributes>(); foreach (GameObject group in unitGroupList) { EnemyGroupAttributes temp = group.GetComponent <EnemyGroupAttributes>(); if (temp.possibleRoutes.Contains(targetRoute.gameObject.name) && temp.spawnTimeLimit <= TotalSpawnTime) { listAvailableGroups.Add(temp); } } if (listAvailableGroups.Count < 1) { return; } int x = Random.Range(0, listAvailableGroups.Count); while (TotalSpawnTime < listAvailableGroups[x].spawnTimeLimit) { x = Random.Range(0, listAvailableGroups.Count); } StartCoroutine(createNewGroup(listAvailableGroups[x], targetRoute, listAvailableGroups[x].productionTime)); targetRoute.isOccupied = true; }
IEnumerator createNewGroup(EnemyGroupAttributes groupToSpawn, RouteScript targetRoute, float delayTime) { yield return new WaitForSeconds(delayTime); GameObject newgroup = Instantiate(groupToSpawn.gameObject, transform.position, Quaternion.identity) as GameObject; newgroup.GetComponent<EnemyGroupAttributes>().routeScript = targetRoute; }
IEnumerator createNewGroup(EnemyGroupAttributes groupToSpawn, RouteScript targetRoute, float delayTime) { yield return(new WaitForSeconds(delayTime)); GameObject newgroup = Instantiate(groupToSpawn.gameObject, transform.position, Quaternion.identity) as GameObject; newgroup.GetComponent <EnemyGroupAttributes>().routeScript = targetRoute; }
public void Start() { base.Start(); enemyGroupAttributes = transform.parent.GetComponent <EnemyGroupAttributes>(); routeScript = enemyGroupAttributes.routeScript; if (routeScript != null) { currentWayPoint = 0; } }
public void Start() { base.Start(); enemyGroupAttributes = transform.parent.GetComponent<EnemyGroupAttributes>(); routeScript = enemyGroupAttributes.routeScript; if(routeScript != null) { currentWayPoint = 0; } }