Changing one object into another

I have a scene in Unity where it is required to choose from three different projectiles. Each one already exists on the stage and has different settings for mesh, materials, rigid body and so on. These projectile objects are to represent wood, metal and rock.

I have a fourth object on the scene which is loaded on to a catapult. By default it is a carbon copy of the wood projectile. I want to be able to swap its attributes with those set by the other projectiles on the scene so that it takes their form, rigid body(mostly for a change in mass) and material. The scaling of each object is the same so this one isn’t needed.
So far I have this but it doesn’t seem to work…

var projectile : GameObject;
var rigid : Rigidbody;

var woodrenderer : MeshRenderer;
var woodcollider : MeshCollider;
var woodfilter : MeshFilter;
var woodtexture : Texture2D;
var woodmaterial : Material;

var stonerenderer : MeshRenderer;
var stonecollider : MeshCollider;
var stonefilter : MeshFilter;
var stonetexture : Texture2D;
var stonematerial : Material;

var metalrenderer : MeshRenderer;
var metalcollider : MeshCollider;
var metalfilter : MeshFilter;
var metaltexture : Texture2D;
var metalmaterial : Material;

function Update () {
if(Input.GetKey ("1"))
{
projectile = new GameObject ("Projectile");
projectile.tag = "projectile";

woodcollider = projectile.AddComponent("MeshCollider");

woodrenderer = projectile.AddComponent("MeshRenderer");

rigid = projectile.AddComponent("RigidBody");
projectile.rigid.mass = 1;

woodfilter = projectile.AddComponent("MeshFilter");
projectile.renderer.material.mainTexture = woodtexture;

}

if(Input.GetKey ("2"))
{
stonecollider = projectile.AddComponent("MeshCollider");

stonerenderer = projectile.AddComponent("MeshRenderer");

rigid = projectile.AddComponent("RigidBody");
projectile.rigid.mass = 20;

stonefilter = projectile.AddComponent("MeshFilter");
projectile.renderer.material.mainTexture = stonetexture;
}

}

the code for the switch to metal isn’t added in yet as i was only testing between rock and wood.

Could anybody help with this? I can provide more info if needed.

2 things I would do to make this easier:
First, instead of having variables for all the components, make a Prefab for each of the wood, stone, and metal projectiles. Then you can Instantiate(woodPrefab, position, rotation) each time instead of making a game object from scratch.

Second, to answer your question about the catapult, using the method above makes this simple.
You would just Instantiate a new prefab of the appropriate type in the catapult (in the same position/rotation), Destroying the old one if necessary.

i hope this work becuse i want to prove it D: it is becuse i got a doric column and the column in a destruction animation i want to react column to collision