Weapon pick up

Hi all so i am making a game and i have some weapons that you can switch thought but i want it so it checks if you have picked it up also the weapons will be pick up from a box so i do not need code to get rid of it here is my code it is C++ ALSO this code here is to change weapons so i need something in here to check if the weapon has been pick up. I also need code to pick the weapon i know to do this but i need it in c++ so have no idea how to get it to pick up weapons
using UnityEngine;

public class switchweapons : MonoBehaviour
{
    public Gun gunScript = null;

    void Awake()
    {
        setMachineGun();
    }

    void Update()
    {
        if(Input.GetKey(KeyCode.Alpha1))
        {
            setMachineGun();
		
        }

        if (Input.GetKey(KeyCode.Alpha2))
        {
			setSingleFire();
        }

        if (Input.GetKey(KeyCode.Alpha3))
        {
            setShotgun();
        }

        if (Input.GetKey(KeyCode.Alpha4))
        {
			setNoob();
            //setNoob();
        }

        if (Input.GetKey(KeyCode.Alpha5))
        {
			setRocket();
			//setRocket();
        }

    }

    void setMachineGun()
    {
        Debug.Log("Machinegun");
        gunScript.typeOfGun = Gun.weaponType.Machinegun;
        gunScript.bulletSpeed = 200.0f;
        gunScript.baseSpread = 1.2f;
        gunScript.maxSpread = 2.5f;
        gunScript.maxPenetration = 5.0f;
        gunScript.fireRate = 0.1f;
        gunScript.kickBackAmount = 0.3f;
        gunScript.kickBackRecovery = 0.3f;
        gunScript.numberOfClips = gunScript.maxNumberOfClips;
    }

    void setBurst()
    {
        Debug.Log("Burst");
        gunScript.typeOfGun = Gun.weaponType.Burst;
        gunScript.bulletSpeed = 200.0f;
        gunScript.baseSpread = 1.1f;
        gunScript.maxSpread = 1.8f;
        gunScript.maxPenetration = 6.0f;
        gunScript.fireRate = 0.6f;
        gunScript.lagBetweenShots = 0.1f;
        gunScript.kickBackAmount = 0.1f;
        gunScript.kickBackRecovery = 0.1f;
        gunScript.roundsPerBurst = 3;
        gunScript.numberOfClips = gunScript.maxNumberOfClips;
    }

    void setShotgun()
    {
        Debug.Log("ShotGun");
        gunScript.typeOfGun = Gun.weaponType.Shotgun;
        gunScript.bulletSpeed = 200.0f;
        gunScript.baseSpread = 3.1f;
        gunScript.maxSpread = 8.8f;
        gunScript.maxPenetration = 3.0f;
        gunScript.fireRate = 0.6f;
        gunScript.kickBackAmount = 2.6f;
        gunScript.kickBackRecovery = 2.6f;
        gunScript.numberOfClips = gunScript.maxNumberOfClips;
    }

    void setSingleFire()
    {
        Debug.Log("Single");
        gunScript.typeOfGun = Gun.weaponType.Burst;
        gunScript.bulletSpeed = 200.0f;
        gunScript.baseSpread = 0.6f;
        gunScript.maxSpread = 1.8f;
        gunScript.maxPenetration = 6.0f;
        gunScript.fireRate = 0.05f;
        gunScript.lagBetweenShots = 0.1f;
        gunScript.kickBackAmount = 0.1f;
        gunScript.kickBackRecovery = 0.1f;
        gunScript.roundsPerBurst = 1;
        gunScript.numberOfClips = gunScript.maxNumberOfClips;
    }


    void setNoob()
    {
        Debug.Log("Noob Tube");
        gunScript.typeOfGun = Gun.weaponType.Launcher;
        gunScript.typeOfLauncher = Gun.LauncherType.Grenade;
        gunScript.bulletSpeed = 45.0f;
        gunScript.baseSpread = 0.5f;
        gunScript.maxSpread = 1.0f;
        gunScript.fireRate = 1.6f;
        gunScript.kickBackAmount = 4.6f;
        gunScript.kickBackRecovery = 4.6f;
        gunScript.numberOfClips = gunScript.maxNumberOfClips;
    }
    void setRocket()
    {
        Debug.Log("Rocket Launcher");
        gunScript.typeOfGun = Gun.weaponType.Launcher;
        gunScript.typeOfLauncher = Gun.LauncherType.Rocket;
        gunScript.bulletSpeed = 40.0f;
        gunScript.baseSpread = 2.1f;
        gunScript.maxSpread = 4.5f;
        gunScript.fireRate = 1.6f;
        gunScript.kickBackAmount = 0.3f;
        gunScript.kickBackRecovery = 0.3f;
        gunScript.numberOfClips = gunScript.maxNumberOfClips;
    }
}