How to check when an animation has FINISHED

can someone help. I have an animation called “StandToRun” and i want the “Run” Animation to play right after the “StandToRun” animation so the transition from standing to run looks smooth.
Here is my script

using UnityEngine;
using System.Collections;

public class Animation : MonoBehaviour {

	// Use this for initialization
	void Start () 
	{
		animation.Play("Standing");
		animation["StandToRun"].speed = 0.8f;
		animation["RunToStand"].speed = 0.8f;




	}
	
	// Update is called once per frame
	void Update () 
	{
		if(Input.GetKeyDown(KeyCode.W))
		{
			animation.Play("StandToRun");
		}
		if(Input.GetKeyUp(KeyCode.W))
		{
			animation.Play("Standing");
		}
	}
}

In your case you should use CrossFade function:

 void Start() {
  animation["StandToRun"].speed = 0.8f;
  animation["RunToStand"].speed = 0.8f;
  animation.CrossFade("Standing");
 }
 
 void Update() {
  if(Input.GetKeyDown(KeyCode.W)) {
   animation.CrossFade("StandToRun");
  }
  if(Input.GetKeyUp(KeyCode.W)) {
   animation.CrossFade("Standing");
  }
 }

And your animation should be as “Loop”, when import. P.S. Check animation playing:

 bool animplay = animation.IsPlaying("Standing");

Value true - is playing, value false - not playing.