ちょっと補足すると以下の流れにする
ソースちゃんと読んでないけどだいたいあってるに違いないニダ!!

void Start () {

StartCoroutine("commandInputControl"); コマンドなんちゃらコルーチン開始
}

IEnumerator commandInputControl(){ 呼ばれるコマンドなんちゃらコルーチン

StartCoroutine("confirmCommand"); コマンド確定コルーチン開始

while (true){

}
}

IEnumerator confirmCommand(){ 呼ばれるコマンド確定コルーチン

}

コルーチンは別の新しい処理の流れをスタートさせるもの、スレッドみたいの
unity総合スレから派生してunity質問スレがスタートしそれぞれ独立して
書き込みが発生するのと似たような感じ

昇竜拳中キャンセル昇竜拳はあかんやろとか都合悪くなったらそのコルーチンだけ止めたり
再開したりといった制御ができる

unityやるなら必須レベルの大事な仕組みなので今日半日使ってでも
勉強して損はないニダ(簡単だけど)