ハブられる一人(´・ω・`) |
何故前回と同じような記事を投稿するのかと思うだろう。gifアニメを試してみたかっただけである。前回の障害物回避スクリプトを改良し後退中でも回避が可能になった。
これだけだと今回の記事はこれでおしまいになってしまうので―というのも他に前進したところがないので―スクリプトの仕組みを簡単に説明しよう。さてユニットはレンジ:SearchRangeの範囲でPhysics.OverlapSphereを使って周囲をスキャンしcolliderを見つけると障害物かどうか判定する(障害物にはタグが付いている)。
こんな図を作っているほど暇ではないのだが… |
障害物は更に方角に応じL(left)、FL(FrontLeft)などと分類される。最寄りの障害物がDodge Rangeに入るとユニットは回避行動に入る。FLエリアの障害物が最寄りの場合通常ユニットは右にスライドするが、Rエリアでも障害物が観測される場合は左にスライドする。Lでも観測されたら?ユニットは停止する(世の中は厳しいのだ!)。時々ユニット同士がニアミスする事故が起きる。その時のためにDodge Range内に更に赤色のエリアを確保しここに障害物が入ると問答無用で回避(後退も含む)を行う。