Button pressed 4 times?!!

function isPickableGun(e : String) : boolean {

return (e == "Pickable1911Torch" || e =="Pickable1911" || e =="Pickable44Snub" || e == "Pickable93R"
     || e == "PickableDerringer" || e == "PickableAK"  || e == "PickableMP5"   || e == "PickableRPK"
     || e == "PickableM4"        || e == "PickableM16" || e == "PickableM67Frag");
}

function OnGUI () { 
  var hit : RaycastHit; 
  var ray : Ray = transform.Find("Camera").camera.ViewportPointToRay(new Vector3(0.5, 0.5, 0));
  if (Physics.Raycast(ray, hit, 12)){
    if(isPickableGun(hit.collider.gameObject.tag)){
       GUI.Label(Rect((Screen.width / 2) - 50, Screen.height / 2, 100, 20), "Pick"); 
       if(Input.GetButtonDown("Pickup")){
         Debug.Log("Pick Button Pressed");
         if(hit.collider.gameObject.tag == "Pickable1911") GunManager.currentLowGun = 0;
         if(hit.collider.gameObject.tag == "Pickable1911Torch") GunManager.currentLowGun = 1;
         if(hit.collider.gameObject.tag == "Pickable44Snub")  GunManager.currentLowGun = 2;
         if(hit.collider.gameObject.tag == "Pickable93R") GunManager.currentLowGun = 3;
         if(hit.collider.gameObject.tag == "PickableDerringer") GunManager.currentLowGun = 4;
         if(hit.collider.gameObject.tag == "PickableAK")  GunManager.currentLowGun = 5;
         if(hit.collider.gameObject.tag == "PickableMP5") GunManager.currentLowGun = 6;
         if(hit.collider.gameObject.tag == "PickableRPK") GunManager.currentLowGun = 7;
         if(hit.collider.gameObject.tag == "PickableM4")  GunManager.currentLowGun = 8;
         if(hit.collider.gameObject.tag == "PickableM16") GunManager.currentLowGun = 9;
         if(hit.collider.gameObject.tag == "PickableM67Frag"){
          GunManager.grenadesCounter += 1;
          Destroy(hit.collider.gameObject);
         }
         if(hit.collider.gameObject.tag != "PickableM67Frag")
          if(GunManager.currentWeapon != null){
              if(GunManager.currentWeapon.weapon.animation)
                 GunManager.currentWeapon.weapon.animation.Play("putAwayEdit");
          }else
              GunManager.ChangeWeapon();
       }
    }
}
}

whenever I press “Pickup” I get 4 grenades instead of one…any guesses?

OnGUI() can get called multiple times per Update(). Try moving your button press logic into Update() or FixedUpdate().

It’s because you’re calling Input.GetButtonDown in OnGUI: this function is supposed to be called only in Update. OnGUI is called multiple times between Updates, what usually appears as button pressed multiple times. You should rename this function to Update and move the GUI code to a separate OnGUI function, then set a boolean variable in Update when you want the GUI message to appear (and verify it at OnGUI, of course):

private var guiOn = false; // flag used to "turn GUI on/off"

function OnGUI () { 
  var hit : RaycastHit; 
  var ray : Ray = transform.Find("Camera").camera.ViewportPointToRay(new Vector3(0.5, 0.5, 0));
  if (Physics.Raycast(ray, hit, 12)){
    if(isPickableGun(hit.collider.tag)){ // collider provides direct access to tag, name etc.
      guiOn = true;
      if(Input.GetButtonDown("Pickup")){
         var tag = hit.collider.tag; // this aux var improve efficiency
         Debug.Log("Pick Button Pressed");
         if(tag == "Pickable1911") GunManager.currentLowGun = 0;
         if(tag == "Pickable1911Torch") GunManager.currentLowGun = 1;
         if(tag == "Pickable44Snub")  GunManager.currentLowGun = 2;
         if(tag == "Pickable93R") GunManager.currentLowGun = 3;
         if(tag == "PickableDerringer") GunManager.currentLowGun = 4;
         if(tag == "PickableAK")  GunManager.currentLowGun = 5;
         if(tag == "PickableMP5") GunManager.currentLowGun = 6;
         if(tag == "PickableRPK") GunManager.currentLowGun = 7;
         if(tag == "PickableM4")  GunManager.currentLowGun = 8;
         if(tag == "PickableM16") GunManager.currentLowGun = 9;
         if(tag == "PickableM67Frag"){
           GunManager.grenadesCounter += 1;
           Destroy(hit.collider.gameObject);
         }
         if(tag != "PickableM67Frag")
          if(GunManager.currentWeapon != null){
              if(GunManager.currentWeapon.weapon.animation)
                 GunManager.currentWeapon.weapon.animation.Play("putAwayEdit");
          }else
              GunManager.ChangeWeapon();
      }
    } else {
      guiOn = false;
    }
  }
}

function OnGUI(){
  if (guiOn){ // turn GUI on only when needed
    GUI.Label(Rect((Screen.width / 2) - 50, Screen.height / 2, 100, 20), "Pick"); 
  }
}