public void InstantiateEnemyCluster(InvaderBomberCluster cluster, int clusterSize, Vector2 distanceBetweenSpawn) { int tempEnemyRowChange = enemyRowChange; int tempRowAmountChange = rowAmountChange; Vector3 position = Vector3.zero; Vector3 enemySize = Vector3.zero; for (int i = 0; i < clusterSize; i++) { if (enemyBehaviorPrefab.GetComponentInChildren <Renderer>() != null) { enemySize = enemyBehaviorPrefab.GetComponentInChildren <Renderer>().bounds.size; } Debug.Log("Enemy size: " + enemySize); position.x += (distanceBetweenSpawn.x + enemySize.x); EnemyBehavior spawnedEnemyBehaviour = Instantiate(enemyBehaviorPrefab, cluster.transform); spawnedEnemyBehaviour.focusedStation = targetStation; spawnedEnemies.Add(spawnedEnemyBehaviour); if (i % tempEnemyRowChange == 0) { position.y += (distanceBetweenSpawn.y + enemySize.y); tempEnemyRowChange += tempRowAmountChange; tempRowAmountChange++; position.x = 0; } spawnedEnemyBehaviour.transform.localPosition = position; } }
private void Update() { if (spawnedCluster == null) { targetStation.isBeingAttacked = false; spawnTimer += Time.deltaTime; if (!hasAlerted && (spawnTimer > currentSpawnInterval * enemySpawnWarnPercentage)) { EventManager.instance.EnemyWaveIncoming(currentSpawnInterval - spawnTimer, targetStation.stationID); hasAlerted = true; } if (spawnTimer > currentSpawnInterval) { spawnTimer = 0f; targetStation.isBeingAttacked = true; spawnedCluster = Instantiate(bomberClusterPrefab, transform.position, Quaternion.identity); spawnedCluster.target = targetStation; InstantiateEnemyCluster(spawnedCluster, (int)clusterSize, distanceBetweenSpawn); spawnedCluster.transform.up = transform.up; spawnedCluster.transform.parent = transform; GenerateSpawnInterval(); spawns++; if (spawns % spawnsBetweenClusterChange == 0) { clusterSize += (uint)clusterSizeIncrease; Debug.Log("Size increase"); } } } }
//public static GameObject LoadPrefabContents(assetPath); private void Start() { invaderBomberCluster = GetComponentInParent <InvaderBomberCluster>(); enemyBehavior = GetComponent <EnemyBehavior>(); }