Unity初心者です。

Unity内のfor文に関しての質問です。
今、サイコロででた目の数だけキャラクターをマスの上で
動かすプログラムを組んでみたのですが、
上下左右に1マス、1マスずつ指定した方向に動かしたいのに、
一度方向を指定した瞬間に一気にその方向に動いてしまいます。
どのように修正すれば、入力待ちしながら1マス1マス動かすことができるようになりますか。
以下プログラミング内容になります。
updateの中で実行しています。

よろしくお願いします。

※d62.lastresultはサイコロの出た目です。

public void MoveMain(){

    Dice2 d62 = dice2.GetComponent ();
    if (d62.lastresult != 0 && jj == false) {
        for (int i = 0; i < d62.lastresult; i++) {
            if(Input.GetKeyUp (KeyCode.W) ) {
                this.transform.position += new Vector3 (0, 0, 1);
                jj=true;
            }else if(Input.GetKeyUp (KeyCode.S)){
                this.transform.position += new Vector3 (0, 0, -1);
                jj=true;
            }else if(Input.GetKeyUp (KeyCode.A)){
                this.transform.position += new Vector3 (-1, 0, 0);
                jj=true;
            }else if(Input.GetKeyUp (KeyCode.D)){
                this.transform.position += new Vector3 (1, 0, 0);
                jj=true;
            }
        }
    }
}