Witam,mam pewien problem w skrypcie.
Chodzi mi dokładniej o to,by metoda SetSpriteAnimation wykonała się 4 razy,ale tak bym to mógł zauważyć,gdy kliknę jakiś klawisz,WSAD kilkukrotnie niestety to wykonuję się jedynie 1/4 całej animacji przeznaczonej na ten klawisz.Jednak gdy wklejam 4 razy w jedno miejsce tą metodę to niestety nie ma żadnych zmian.Co źle robię ?


using UnityEngine;
using System.Collections;

public class PlayerEssentials : MonoBehaviour {

    // Use this for initialization
    private double speed = 10.0;
    private Vector3 pos;
    private Transform tr;

    public int colCount =  4;
    public int rowCount =  4;
    public Vector2 MoveVector;

    public int  rowNumber  =  0; 
    public int colNumber = 0; 
    public int totalCells = 4;
    public int  fps     = 10;

    void Start () {
        tr = transform;
        pos = tr.position;

        SetSpriteAnimation( colCount, rowCount, rowNumber, colNumber, totalCells, fps );

    }

    // Update is called once per frame
    void Update () {
        if (Input.GetKeyDown(KeyCode.D)|| Input.GetKey(KeyCode.D))
        {
            for(int i = 0;i < 4;i++)
            {
            pos += Vector3.right;
            }
            rowNumber = 2;
            colNumber = 0;
            totalCells = 4;
            SetSpriteAnimation( colCount, rowCount, rowNumber, colNumber, totalCells, fps );

        }
        else if (Input.GetKeyDown(KeyCode.A) && tr.position == pos) {
            rowNumber = 1;
            colNumber = 0;
            totalCells = 4;
            pos += Vector3.left;
            SetSpriteAnimation( colCount, rowCount, rowNumber, colNumber, totalCells, fps );
        }
        else if (Input.GetKeyDown(KeyCode.W) && tr.position == pos) {
            pos += Vector3.up;
            rowNumber = 3;
            colNumber = 0;
            totalCells = 4;
            SetSpriteAnimation( colCount, rowCount, rowNumber, colNumber, totalCells, fps );
        }
        else if (Input.GetKeyDown(KeyCode.S) && tr.position == pos) {
            pos += Vector3.down;
            rowNumber = 0;
            colNumber = 0;
            totalCells = 4;

        }

        transform.position = Vector3.MoveTowards(transform.position, pos, Time.deltaTime * (float)speed);

    }
    void SetSpriteAnimation(int colCount ,int rowCount ,int rowNumber ,int colNumber,int totalCells,int fps )
    {

                        int index = (int)(Time.time * fps);

                        index = index % totalCells; // => 0 1 2 3 / 0 1 2 3 / 0 1 2 3 ...

                        float sizeX = 1.0f / colCount; 
                        float sizeY = 1.0f / rowCount;
                        Vector2 size = new Vector2 (sizeX, sizeY);

                        var uIndex = index % colCount;
                        var vIndex = index / colCount;

                        float offsetX = (uIndex + colNumber) * size.x;
                        float offsetY = (1.0f - size.y) - (vIndex + rowNumber) * size.y;
                        Vector2 offset = new Vector2 (offsetX, offsetY);

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

    }
}