Animator.Play() does nothing

I am having trouble with Animator.Play() appearing to do nothing. My situation is that I have an object with an Animator on it, and I need to prevent the animation from beginning until the user clicks on a button as I cannot rely on when the Start() function is executed to be the correct time for the animation to play.

What I am doing is calling Animator.Stop() on the Animator when Start() is execute, and then calling Animator.Play() when it is time for the animation to play.

If I don’t call Animator.Stop(), the animation will play as soon as the Start() function of my object is executed so I know that the animation works. I have verified that the call to Animator.Play() is executed when the button is pressed as I expect. If I look at the Animator, I can see the progress bar on my state set to the beginning and it does not advance at all.

I have a super simple animation controller, with just one state, the default state and all it does is play the animation.

Here is the relevant my code.

public class GachaSystem : MonoBehaviour {
    public  Animator    droneAnimator;

    void Start() {
        FreezeEverything();
    }

     void FreezeEverything() {
            droneAnimator.Stop();
    }

    public void Execute() {
            droneAnimator.Play("Drone_Animation", -1, 0f);
    }
}

Thank You

John Lawrie

Well, I have been able to get the controller to reset by doing the following, though it seems like a hack to me.

droneAnimator.enabled = false;
droneAnimator.enabled = true;

But this works well enough for my purposes.

John Lawrie