>>317
transform.parent が親オブジェクトを指してるから
public GameObject changeweapon;
void Update(){
 if( Input.GetButtonDown("File1") ){
  var obj = (GameObject)Instantiate(changeweapon, transform.position, transform.rotation);
  obj.transform.parent = transform.parent;
  Destroy(gameObject);
 }
}
これで動くはず。