プログラミングで気を付けたいこと

今日は坂道を上るときにジャンプモーションになってしまっていたのでそれを修正していました。原因は円状のコライダによる物理演算でキャラクターがわずかな数値で跳ねあがっていたためにジャンプするアニメーションが再生されてしまうというものでした。

これを解消するために、ジャンプキーのフラグを設けてジャンプのアニメ再生を回避させようとしていましたが、フラグの切り替えるタイミングがなかなかつかめずに悩ませられました。

ジャンプをするルーチンはUpdate()の中に書いており、その中でフラグの操作を設定してもうまくはいきませんでした。常に回されるルーチンですから、当然条件を満たしてしまえば即座にフラグは戻ってしまいます。

こういう時、どこでフラグを切り替えるタイミングを見計らうか。今回出した答えはOnCollisionEnter2Dで地面に着地している状態を条件としてフラグの解除を加えました。こうすることで坂道でもちゃんと走ってくれるようになりました。

毎フレームにて更新するゲームプログラミングのよくある落とし穴かもしれませんね。以後、肝に銘じたいと思います。一度悩むとなかなか発見がしづらいかもしれませんが、落ち着いて一つずつ処理を分析していけば解決方法は見つかりますね。アルゴリズムを描いても、アクションの発生元を考えてあげる必要がありますね。

0コメント

  • 1000 / 1000