Setting position on a rigidbody with animated spring joint

I have something that I’ve been controlling through an animated spring joint. As in, the attributes of the spring joint are animated, but I never directly animate the position of the GameObject.

I want to be able to reset the position of this thing. I have just discovered that rigidbody.MovePosition() will not work when there is an Animator attached to the GameObject.

I read one thing that said I should use WaitForFixedUpdate() in a coroutine, but it still didn’t reset its position.

I tried adding a new Animation clip where I set position and rotation curves. If I did nothing to those curves, it does nothing to reset it. If I tweaked the position values a little, then the thing is locked in place, even when the other animation clips are playing, that didn’t have position and rotation curves. (Because as I said, I wasn’t originally trying to use the animation to animate the object directly, I was animating the hinge joint properties and letting the rigidbody physics control the actual movement.)

Any other ideas?

Okay, I managed to get the behaviour I want.

What I did is, called a Coroutine, and in there

set the Animator’s .enabled to false
did my MovePosition on the rigidbody
yield return new WaitForFixedUpdate();
then set the Animator’s .enabled back to true