>>319
うーん、駄目っぽいですね
var obj=....
のところで
InvalidCastException: Cannot cast from source type to destination type.
と吐いてBeamRifleが消えずにBazookaが再生中のフレームのところに出てきます
多分Instantiateでバグったのでそれ以降の処理が飛ばされて(?)います

Instantiateにキャストをかけなければ通るので
Transform t = (Transform)Instantiate(changeweapon, transform.position, transform.rotation);
changeweapon.parent = t.parent;
Destroy(gameObject);
みたいな感じにしてtransformだけやってその直後にparentだけ合わせようとすると
Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption.
という感じでtransformの設定が無効化されます.この場合Destroyは効きます
何かparentの設定を行う関数でもあるんでしょうか?