2d animation help

hi guys,im kinda new to unity so i would really appriciate help on my probelm,my problem is that i want that when i start a new animation(from stand animation to run animation,or from stand to attack animation,etc...) so every animation is actually a diffrent texutre,and every texture is basiclly a spritesheet of the action,and when i need to switch it to a diffrent action's animation i just change the texture(and sometimes the number of frames)

so my animation code is that:

var uvAnimationTileX = 6; //Here you can place the number of columns of your sheet. 

var uvAnimationTileY = 1; //Here you can place the number of rows of your sheet. 

var framesPerSecond = 10.0;

var StandTex : Texture;

var Aset : boolean;

var uIndex;

var index : int;

var offset : Vector2;

var size : Vector2;

function Update () {
if(!Input.GetKey("left") && !Input.GetKey("right")  &&  !Input.GetKey("up") && !Input.GetKey("down") )
{
uvAnimationTileX = 8;
}
else
{
uvAnimationTileX = 6;
}
    // Calculate index
    index = Time.time * framesPerSecond;
    // repeat when exhausting all frames
    index = index % (uvAnimationTileX * uvAnimationTileY);

    // Size of every tile
    size = Vector2 (1.0 / uvAnimationTileX, 1.0 / uvAnimationTileY);

    // split into horizontal and vertical index
    var uIndex = index % uvAnimationTileX;
    var vIndex = index / uvAnimationTileX;

    // build offset
    // v coordinate is the bottom of the image in opengl so we need to invert.
    offset = Vector2 (uIndex * size.x, 1.0 - size.y - vIndex * size.y);

    renderer.material.SetTextureOffset ("_MainTex", offset);
    renderer.material.SetTextureScale ("_MainTex", size);

}

any ideas on how to fix my problem,,and make it to start from the begining of the animation when i start a new action,because now its not starting from the begining (which is not good :P)

thanks in advance ;)

Instead of:

index = Time.time * framesPerSecond;

Do something like:

myTime += Time.deltaTime; //myTime is declared up above
index = myTime * framesPerSecond;

Then when you switch animations you can set myTime to zero, thus resetting it back to the first index.