※ これは 2021/02/26 時点の Unity 2020.2.6f1 の情報です
最新版では動作が異なる可能性がありますのでご注意ください
前回は Tilemap で背景を作れるようになったので、さっそくねこキャラを動かしてみた
当然ながら木箱のマップチップを置いても無視されて突き抜けてしまう
これを回り込むようにするために NavMesh が必要らしいので、Tilemap
に適用してみたい
スポンサードリンク
まずは下記 NavMeshComponents の 2D 対応ブランチをダウンロード
Unity-Technologies / NavMeshComponents
zip を解凍した中身の Assets/Gizmos
と Assets/NavMeshComponents
をディレクトリごとプロジェクトにコピー
次に Tilemap
に使っている Sprite
を Sprite Editor
で開き Custom Physics Shape
のメニューを選択
左端2枚の各チップについて、最初にマップチップを選択、次にマウスドラッグで「通れる範囲」を指定する
通れない範囲ではなく通れる範囲を指定する必要がある
忘れずに右上の Apply
ボタンを押下して変更を適用
このままだとほかのマップチップも通れる扱いになるっぽいので、全く通れない残りのマップチップは Colider Type
を None
にしておく
Unity Editor
メニューの [Window] - [AI] - [Navigation] を選択
当たり判定を細かめに判定するため Agent
タブを選択して、Radius
を 0.05 という小さめの値にしておく
次に Hierarchy 上の Tilemap
を選択、Tilemap Colider 2D
と Nav Mesh Source Tag 2D
のコンポーネントを追加
最後に 新しい GameObject を NavMeshBuilder
という名前で追加し、Nav Mesh Builder 2D
のコンポーネントを追加し、Bake
ボタン押下
これで Scene
タブと Navigation
タブを開いてみると・・・
きれいに Tilemap
にしたがって NavMesh
が生成されたっぽい