Problem with Animating Instantiated Child

A reanimated topic, after some revelations.

I’ve got a Legacy Animation of a Player swinging his sword. It consists of two parts: the Player movement (torso and legs) and a sword swing (The Sword model is a Player’s child).

All seems fine at startup, but when I change weapon (delete the sword for another weapon) and re-instantiate it (back into it’s place with the same name and hierarchy), the Animation plays only the Player’s part, and the sword part is ignored - it doesn’t move.

It’s like the Animation Clip does not rebind the connection to Child after it’s instantiated back to it’s place (and I’m not using the Animator, just standard Animation component).

Is there something I’m missing?

I’m not sure if this is the best way to go, especially for a large project with many different types of inventory items. But in my case I just had a handful of replaceable items. Instead of using the destroy and re-instantiate method, I would disable and enable the ‘sword’ gameObject. That way it wouldn’t lose it’s binding. I don’t have the code with me right now but this is the concept:

public GameObject swordOne;  //currently enabled in scene
public GameObject swordTwo;  //currently disabled in scene

public void switchWeapons(){
    swordOne.enabled = false;
    swordTwo.enabled = true;

}