How to keep sprites position after Unity animation?
<p>I just recently began using Unity3D and this is my first game, so if I'm not doing things like I'm supposed to, please tell me.</p>

<p>There is a 2D character that I want to move one step forward using the Animation mechanism. This movement can be splitted in two parts :</p>

<ul>
<li>Move forward the back leg, don't move the upper body ;</li>
<li>Use this leg to push and make the step, moving the upper body.</li>
</ul>

<p><a href="https://i.stack.imgur.com/x8zCb.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/x8zCb.gif" alt="enter image description here"></a></p>

<p>My problème is that I can't find a way to make this step permanent. As soon as it start looping on the "Idle" animation, then, it come back to the original position (before the step).</p>

<p><a href="https://i.stack.imgur.com/Nbb4d.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Nbb4d.gif" alt="enter image description here"></a></p>

<p>I don't know how to let my character stay in the position it was just between the "Step Forward" animation and the "Idle" animation.</p>

<p>I tried to add "Rigidbody 2D", "Box Collider 2D" and "Physics2D Material" on both feet and on the floor, but it somewhat breaks the IK script ("Simple CCD", from the youtube video "Unite 2014 - 2D Best Practices In Unity"). And I'm sure there is a much simpler way.</p>

<p>EDIT: My question was not clear enough. The idle animation is the default animation, where the character is doing nothing in particular. It's just moving a little while it's staying in position. When it runs "Step Forward", all the sprites are moved (only when the back leg is pushing). If all animations are stopped right now, then the character is indeed in a new position, closer to it's opponent. I can check that by removing the transition from "Step Forward" to "Idle". But from here, I want it to loop on the Idle animation. When the transition from "Step forward" to "Idle" is done, the character is NOT running Idle from it's new position, but from it's old position, before the step, as if it was pulled from backward. I want to run Idle from the new position.</p>

<p>Here is a longer gif when we can see more of the Idle animation :</p>

<p><a href="https://i.stack.imgur.com/b9ORK.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/b9ORK.gif" alt="enter image description here"></a></p>

<p>And my Hierarchy panel looks like :</p>

<ul>
<li>Main Camera</li>
<li>Karateka (the top GameObject container, with the <code>Animator</code> component)

<ul>
<li>Torso (the sprites)

<ul>
<li>Head</li>
<li>Right arm</li>
<li>Right leg

<ul>
<li>Right lower leg

<ul>
<li>Right foot</li>
</ul></li>
</ul></li>
<li>...</li>
</ul></li>
<li>IK (the Inverse Kinematics targets)

<ul>
<li>Left fist target</li>
<li>Left foot target</li>
<li>...</li>
</ul></li>
</ul></li>
</ul>

<p>Any suggestion is welcome.</p>