public void ActivateShield()
    {
        Debug.Log("Activating player shield!");

        _shieldInstance        = Instantiate(_shieldPrefab, transform.position, Quaternion.identity);
        _shieldInstance.player = player;

        hasShield = true;
        StartCoroutine(RemoveShield()); // wait for 10 secs before disabling again!
    }
    private void OnTriggerEnter2D(Collider2D other)
    {
        switch (other.gameObject.tag)
        {
        case "ShieldEffect":

            // Deactivate player's shield
            ShieldEffectController shield = other.transform.GetComponent <ShieldEffectController>();
            _player.playerDamage.ShieldDeactivate();
            Destroy(gameObject);     //self destroy

            break;

        case "Player":
            // if other is player, then destroy us and damage player
            //! Player damage code to be added

            if (_player != null)
            {
                _player.playerDamage.Damage();
            }
            Destroy(gameObject);

            break;

        case "Laser":

            if (_player != null)
            {
                _player.playerScore.Score += 10;
                Destroy(other.gameObject);     //destroy the laser
                // if other is laser, destroy us and destroy laser;
                Destroy(gameObject);
            }


            break;
        }
    }