private void Update() { if (!grid.GridIsFull()) { if (CheckCooldownAvailability()) { GameObject result; string enemiesType = dataBase.GetTypes()[Random.Range(0, dataBase.GetTypes().Length)]; if (enemiesPool.Acquire(enemiesType, out result)) { result.GetComponent <EnemiesBase>().Activate(); grid.AddObjectToGrid(result); enemies.Add(result); enemiesTypes.Add(enemiesType); } } } for (int i = 0; i < enemies.Count; i++) { if (enemies[i].GetComponent <EnemiesBase>().wasDestroyed) { grid.RemoveObjectFromGrid(enemies[i]); enemiesPool.Release(enemiesTypes[i], enemies[i]); enemies.Remove(enemies[i]); enemiesTypes.Remove(enemiesTypes[i]); } } }
IEnumerator DestroyStar(GameObject star, GameObject background, Vector3 position) { yield return(new WaitForSeconds(0.4f)); Destroy(star); Destroy(background); if (_gridController.CellIsEmpty(VectorTransformer.Vector3ToVector2Int(position))) { GameObject diamond = Instantiate(prefabDiamond, position, Quaternion.identity); _gridController.AddObjectToGrid(diamond.transform); } }