アクションの様にフレーム毎に動くことを前提としたゲームならUpdateに移動処理の関数を入れ、その関数にフレームの更新間隔でループさせれば良いと思うのですが、RPGのキャラ移動のように例えばキー入力がされるまで処理を止めることが上手く出来ません。
ソースはこのような感じです。

01: void Start () {
02:StartCoroutine (CoroutineSample());
03:}
04:
05:void Update () {
06:}
07: IEnumerator CoroutineSample(){
08:   WaitWhile (!Input.anyKeyDown){ yield return 0; }//キー入力まで処理を止める
09:
10: if(Wのキーを押したとき、キャラが上に移動する処理)
11: 複数のelse if(他のキーを押したとき、Aなら左、Sなら下、Dなら右に移動する処理)
12:
13: }//CoroutineSample()を閉じる括弧

ところがこれでビルドすると、

WaitWhile (!Input.anyKeyDown){ yield return 0; }に(;が必要です)。

とエラー文が出てビルドが成功しません。

どこを変えればビルドが成功するのでしょうか?

ご教授していただければ幸いです。