C# - stop instantiated objects from inheriting the last

I have a problem, each time i instantiate a projectile, it inherits attributes from the last one. For example, after i’ve instantiated an object, when it hits the ground, it disappears, by SetActive (false); and when i instantiate the next projectile I need to SetActive (true); because it gets instantiated as inactive.

Is there a trick to this? It’s giving me a lot more problems than just that, for example it’s colliders and rotation all need to be reset each time it’s instantiated.

EDIT: providing some code

if (shootingProjectile) {
                    projectile = Instantiate (projectileToUse, transform.position, Quaternion.identity) as GameObject;
    				projectile.SetActive (true);
}

By creating a placeholder GameObject I was able to prevent the cloned objects from inheriting each others values. Here is what I did instead:

if (shooting) {
				projectile = projectileToUse;
				projectile = Instantiate (projectile, transform.position, Quaternion.identity) as GameObject;
}

that way i was resetting the projectile prefab each time it was firing, instead of repeatedly cloning and getting variables mixed together.