As a simple example, I did the following steps in a new project in Unity 5.0.0f4: 1. Create a cube. 2. Create an Animation called "TestAnimation". 3. Drag "TestAnimation" onto the cube - this will create an AnimatorController called "Cube". 4. On "TestAnimation", record the cube scaling from 1,1,1 at 0:00, to 2,2,2 at 0:30 (just the 2 keys). In the Animator, do the following: 5.1. Add an empty "New State" to Cube. 5.2. Turn off "Write Defaults" in "TestAnimation" and "New State". 5.3. Add a transition from "TestAnimation" to "New State". 5.4. On the transition, change Exit Time to 1, and Transition Duration to 0. [Note - if you don't want to do all that then I have attached an example project.] When you hit Play, you should see the Cube scale up - but it will never be 2,2,2. Each time you Play, the result will be slightly different, it might be 1.969842,1.969842,1.969842 or 1.974897,1.974897,1.974897. I would like to know why, with an Exit Time of 1, does the animation exit before actually finishing (i.e. the scale reaching 2,2,2)? As a workaround, you can increase Exit Time to something like 1.1, and the cube finishes scaling, but it doesn't feel right to do this as any amount over 1.0 is intended to start repeating the animation (when loop is enabled). Interestingly, I can even set Exit Time as high as 1.04, and it still exits too early. Any insight would be much appreciated!