パッと見だと問題ないから実装のさせ方が悪い

その部分だけだと分からんけど、単に主人公が上を向くまで方向を取得し続けていないとか、もしくは並列実行で行っていないとか、並列実行以外で実装したいならループ内に主人公を操作するシステムを組み込んでいないとか