Backwards animations

is there a way to play an animation backwards? or copy an animation and invert it and save it again easily?

this was suggested but it doesn't seem to work:

animation["Zoom"].speed = -1;
animation.Play("Zoom");

when I use that code it doesn't do anything, if I'm in the middle of another animation it will go back to the ending point of "zoom" animation but it does nothing else.

public AnimationClip animationClip;

void PlayForwards()
{
   animation[animationClip.name].speed = 1.0f;
   animation.Play(animationClip.name);
}

void PlayBackwards()
{
   animation[animationClip.name].speed = -1.0f;
   animation[animationClip.name].time = animation[animationClip.name].length;
   animation.Play(animationClip.name);
}

Feels like I had to hunt for this code a little more than I should have. But yeah, you need to set the animation to the ending frame before you play it backwards.

Set the animation's speed to -1 before playing it:

animation["walk"].speed = -1;