竹林ソフト 2023/10/10 20:00

ねこ巫女籠城ゲーム開発(移動用メッシュの高さを取得する)

前回まででユニットが壁などを乗り越えるときに使う移動メッシュを定義したので、今回はそれから移動コストを予め計算するあたりに着手します。

やること

ユニットが移動するメッシュの高低差を元に、タイルの8方向の移動コストを計算します。

↓移動方向とメッシュの例

今回はこのメッシュの高さを利用できるようにします。

実装したこと

メッシュの高さを求める

そしてメッシュの頂点の座標から高さを計算して利用するつもりだったのですが、メッシュの種類が現時点で3つと少ないので、このタイルごとのメッシュを 20x20 分割した格子ごとの高さを予め計算しておいて利用することにします。

決まった位置のメッシュの高さを求めるだけなので、Collider を付与して Raycast で高さを求めて、その値を配列に保存しておいて使うことにしました。

↓Raycast でメッシュの高さを取得するコード

よいです。

メッシュが建物のどのタイルで使われるかを割り当てる

このメッシュはフィールドのタイル単位の大きさなので、建物は「この場所にはこのメッシュをこの角度で」という風に指定して利用します。そして、この割り当てを計算するあたりまでを実装しました。

↓建物の角度を変えながらメッシュを重ね合わせて描画してみた様子

適切に動作しているのがわかります。よいです。

まとめと今後の予定

メッシュの高さを計算で求めようとして「思ってたより難しいな」と悩んでいましたが、割り切って Raycast で高さを取得するようにしました。開発が進んで大変よいです。
次回は、この利用できるようになった高さから A* アルゴリズム用で使う移動コストの計算をするか、気分転換に見た目まわりの作業に着手します。がんばります。

月別アーカイブ

限定特典から探す

記事を検索