private void Start()
    {
        _currentWeaponIndex = _weaponToStart;

        _currentWeapon = _weapons[_currentWeaponIndex];
        _currentWeapon.Take();

        _OnChangeWeapon?.Invoke(_currentWeapon.name, _currentWeapon.ClipAmmo, _currentWeapon.Ammo);
    }
    private void SwitchWeapon(int nextWeapon)
    {
        //Retain the current Weapon
        _currentWeapon.Retain();

        //Take the next Weapon
        _currentWeaponIndex = nextWeapon;
        _currentWeapon      = _weapons[_currentWeaponIndex];

        _currentWeapon.Take();

        _OnChangeWeapon?.Invoke(_currentWeapon.name, _currentWeapon.ClipAmmo, _currentWeapon.Ammo);
    }