public EnemyContent GetFromPool() { EnemyContent enemy = Main.EnemyMain.enemiesPool.Dequeue(); enemy.gameObject.SetActive(true); return(enemy); }
private void AddToPool(EnemyContent enemy) { enemy.gameObject.transform.position = UtilityCustom.GetRandomPosition(); enemy.destination = UtilityCustom.GetDestination(); Main.EnemyMain.enemiesPool.Enqueue(enemy); enemy.gameObject.SetActive(false); }
private void GetEnemyFromPool(Vector3 randomPosition, Vector3 destination) { EnemyContent go = Main.EnemyMain.enemyPooling.GetFromPool(); go.gameObject.transform.position = randomPosition; go.destination = destination; go.timer = 0f; }
private void SpawnNewEnemy(Vector3 randomPosition, Vector3 destination) { EnemyContent go = Instantiate(Main.EnemyMain.refs.enemyPrefabToSpawn, randomPosition, Quaternion.identity); go.destination = destination; go.timer = 0f; go.gameObject.transform.parent = Main.EnemyMain.enemiesKeeper; Main.EnemyMain.enemies.Add(go); }
public void SpawnABullet(EnemyContent enemy) { Vector3 positionForBullet = enemy.transform.position; if (!isGameOver) { if (Main.BulletMain.bulletsPool.Count == 0) { SpawnNewBullet(positionForBullet); } else { GetBulletFromPool(positionForBullet); } Main.BulletMain.BulletShoot(); } }
public void ReachedDestination(EnemyContent enemy) { onEnemyReachedDestination?.Invoke(enemy); }