Zooming animation doesn't work

Hello,

I have this script that is supposed to play the “zooming” animation ONCE when I have the right mouse button pressed. However, it keeps playing the animation again and again, as long as I have the button pressed. Any help?


This is my script: (and yes, I have set the animation “Zoom” to Once!)

#pragma strict

var running : boolean;
var zooming : boolean;

function Update () {

	if( (Input.GetAxis("Horizontal") || Input.GetAxis("Vertical")) && !running )
	{
		animation.CrossFade("Walking", 0.2);
	}
	else if( (Input.GetAxis("Horizontal") || Input.GetAxis("Vertical")) && running )
	{
		animation.CrossFade("Running", 0.2);
	}
	
	if( Input.GetMouseButtonDown(1) )
	{
		zooming = true;
	}
	if( Input.GetMouseButtonUp(1) )
	{
		zooming = false;
	}
	if(zooming)
	{
		animation.Play("Zoom");
	}
	
	if(Input.anyKey == false)
	{
		animation.CrossFade("Idle", 0.2);
	}
	
	if(Input.GetButton("Run"))
	{
		running = true;
	}
	else
	{
		running = false;
	}
}

Looks like you need to set the animations wrap mode.

See the following links:

http://docs.unity3d.com/Documentation/ScriptReference/AnimationState-wrapMode.html
http://docs.unity3d.com/Documentation/ScriptReference/WrapMode.html