As far as I know, the easiest way to deal with jumping and falling animations is to make them simple loops toggled by a certain variable in code. In the Fancy Pants Adventures series of Flash games, however, this is not the case. Somehow, the Fancy Pants character knows precisely how long he'll take to reach the apex of the jump (which depends on how long the jump button was pressed), and times his jumping animation accordingly. Similarly, he appears to know precisely how long it'll take for him to reach the ground, and uses that to also time his falling animation. The result can be seen in the gif below. Fancy Pants also has a surprisingly precise backflip move. It is somehow able to calculate how long the character will stay airborne (even though most of the terrain is decidedly not flat) and times the animation so that the character always does precisely a single backflip, no more. Interestingly, as can be seen in the gif below, there are times where this doesn't work. From what I can see, Pants appears to not consider the time to reach a particular piece of ground when it is of a certain angle, and can therefore bonk in it if the backflip animation hasn't finished yet. As I said above, this was all done in Flash. How can one achieve a similar result in Unity? Is it all a matter of using physics equations to predict how long the animations should last, changing the Animator's speed accordingly? Thanks in advance.