How to have animation play correctly

so here is the problem:

SORRY FOR THE MUSIC I WAS ON PANDORA

the animation keeps on spinning and then stops, it doesnt peek like its supposed to, the animation isnt playing how its supposed to, here is the script: var lookSensitivity : float = 5;
@HideInInspector

var currentXRotation : float;

@HideInInspector

var currentYRotation : float;

@HideInInspector

var xRotation : float;

@HideInInspector

var yRotation : float;

@HideInInspector

var xRotationVelocity : float;

@HideInInspector

var yRotationVelocity : float;

var lookSmoothDamp : float = 5;

var paused : boolean = false;

//for Pause Menu

var guiBackround : GameObject;

var pauseMenu : GameObject;

// for peeking

var Cam : GameObject;

static var nextToWall = false;

// Flashlight (Not the actual flashlight model just the spotlight

var Flashlight : GameObject;

 

function Start()

{

        nextToWall = false;

        Flashlight.active=false;

}

 

function Update()

{

        if(Input.GetKeyDown("escape") && paused == false)

   {  

   paused = true;    

   Time.timeScale = 0;

   guiBackround.active=true;

   pauseMenu.active=true;  

   }

   else if(Input.GetKeyDown("escape") && paused == true)

   {      

   paused = false;  

   Time.timeScale = 1;

   guiBackround.active=false;

   pauseMenu.active=false;

   }

   else if(nextToWall == false && Input.GetKeyDown(KeyCode.Q))

   {

        animation.Play("Peek(Q)");

   }

    else if(nextToWall == false && Input.GetKeyDown(KeyCode.E))

        {

                animation.Play();

        }

    else if(nextToWall == true)

        {

                // Stop all animations

        animation.Stop();

        }

        else if(Input.GetKeyDown(KeyCode.F) && Flashlight.active==false)

   {      

                Flashlight.active=true;

   }

        else if(Input.GetKeyDown(KeyCode.F) && Flashlight.active==true)

   {      

                Flashlight.active=false;

   }

        yRotation += Input.GetAxis("MouseX") * lookSensitivity;

        xRotation -= Input.GetAxis("MouseY") * lookSensitivity;

       

        xRotation = Mathf.Clamp(xRotation, -90, 90);

       

        currentXRotation = Mathf.SmoothDamp(currentXRotation, xRotation, xRotationVelocity, lookSmoothDamp);

        currentYRotation = Mathf.SmoothDamp(currentYRotation, yRotation, yRotationVelocity, lookSmoothDamp);

       

        transform.rotation = Quaternion.Euler(currentXRotation, currentYRotation, 0);

}

I think it will help you

			animation["animationname"].wrapMode = WrapMode.Once;
			animation.Play("animationname");