public LifeBarInfo TryToGetLifeBar()
    {
        LifeBarInfo _toReturn = null;

        for (int index = 0; index < listLifeBarPool.Count; index++)
        {
            LifeBarInfo _possibleLifeBar = listLifeBarPool[index];
            if (!_possibleLifeBar.gameObject.activeSelf)
            {
                _toReturn = _possibleLifeBar;
                break;
            }
        }

        if (_toReturn == null)
        {
            _toReturn = Instantiate(lifeBarPrefab);
            _toReturn.transform.SetParent(lifeBarHolder.transform);
            listLifeBarPool.Add(_toReturn);
        }

        _toReturn.gameObject.SetActive(true);

        return(_toReturn);
    }
    public void AddLifeBar()
    {
        if (!HasLifeBar(GameInstances.GetPlayer()))
        {
            LifeBarInfo _lifeBar = GameInstances.instance.poolSystemInstance.TryToGetLifeBar();
            _lifeBar.owner = GameInstances.GetPlayer();
            listLifeBarInfo.Add(_lifeBar);
        }

        for (int i = 0; i < GameInstances.instance.listShooterEnemies.Count; i++)
        {
            ShooterEnemy enemyIndex = GameInstances.instance.listShooterEnemies[i];
            if (!HasLifeBar(enemyIndex))
            {
                LifeBarInfo _lifeBar = GameInstances.instance.poolSystemInstance.TryToGetLifeBar();
                _lifeBar.owner = enemyIndex;
                listLifeBarInfo.Add(_lifeBar);
            }
        }

        for (int i = 0; i < GameInstances.instance.listChaserEnemies.Count; i++)
        {
            ChaserEnemy enemyIndex = GameInstances.instance.listChaserEnemies[i];
            if (!HasLifeBar(enemyIndex))
            {
                LifeBarInfo _lifeBar = GameInstances.instance.poolSystemInstance.TryToGetLifeBar();
                _lifeBar.owner = enemyIndex;
                listLifeBarInfo.Add(_lifeBar);
            }
        }
    }
    public void InitializePool()
    {
        _bulletsHolder = new GameObject("Bullets Pool");
        _bulletsHolder.transform.position = Vector2.zero;
        for (int index = 0; index <= initialAmountBullets; index++)
        {
            Bullet _bullet = Instantiate(bulletPrefab);
            _bullet.transform.SetParent(_bulletsHolder.transform);
            _bullet.gameObject.SetActive(false);
            listBulletPool.Add(_bullet);
        }

        _bulletsImpactsHolder = new GameObject("Bullets Impacts Pool");
        _bulletsImpactsHolder.transform.position = Vector2.zero;
        for (int index = 0; index <= initialAmountbulletsImpacts; index++)
        {
            GameObject _bulletImpact = Instantiate(bulletImpactPrefab);
            _bulletImpact.transform.SetParent(_bulletsImpactsHolder.transform);
            _bulletImpact.gameObject.SetActive(false);
            listBulletImpactPool.Add(_bulletImpact);
        }

        lifeBarHolder.transform.parent     = GameInstances.instance.uiManagerInstance.canvas;
        lifeBarHolder.transform.localScale = Vector2.one;
        for (int index = 0; index <= initialAmountLifeBars; index++)
        {
            LifeBarInfo _lifeBar = Instantiate(lifeBarPrefab, lifeBarHolder.transform);
            _lifeBar.gameObject.SetActive(false);
            listLifeBarPool.Add(_lifeBar);
        }

        _enemyShooterHolder = new GameObject("Enemy Shooter Pool");
        _enemyShooterHolder.transform.position = Vector2.zero;
        for (int index = 0; index <= initialAmountShooter; index++)
        {
            ShooterEnemy _enemyShooter = Instantiate(enemyShooterPrefab, _enemyShooterHolder.transform);
            _enemyShooter.gameObject.SetActive(false);
            listEnemyShooterPool.Add(_enemyShooter);
        }

        _enemyChaserHolder = new GameObject("Enemy Chaser Pool");
        _enemyChaserHolder.transform.position = Vector2.zero;
        for (int index = 0; index <= initialAmountChaser; index++)
        {
            ChaserEnemy _enemyChaser = Instantiate(enemyChaserPrefab, _enemyChaserHolder.transform);
            _enemyChaser.gameObject.SetActive(false);
            listEnemyChaserPool.Add(_enemyChaser);
        }
    }