NPCの移動
NPCのトイレへの移動、Shikkinシリーズでは欠かせない要素です。そのためには、目的地へ向けてNPCが移動する仕組みが必要です。
Shikkin128は目的地が少なかったのと私の知識不足のため、各目的地への等高線のようなものをExcelであらかじめ計算しておくというかなり強引な方法で実装していました。
その後、ShikkinSCHOOLでは目的地も増えたので事前計算はあきらめて、A*という探索アルゴリズムを実装していました。
さて、ゲームエンジンであるUnityには、Navmeshという経路探索と移動の仕組みが内蔵されています。ShikkinGIRLでトイレへ向かったりShikkinCLUBで目的地に向かう際にも使っています。なので、これを使えば2Dでも簡単・・・と言いたいのですが、なんと、2Dには対応していません。マジかよ。
ということで、2Dに対応した経路探索のライブラリを探したところ、A* Pathfinding Project のライブラリが2Dにも対応していました。
https://arongranberg.com/astar/documentation/4_0_8_e597295/pathfinding-2d.php
さっそく組み込んで動かしてみたところ。わらわら動いていい感じです。
ちなみに、A* Pathfinding Project はアセットストアで有料版が販売されていますが、Shikkinシリーズの用途的には無料版で十分そうです。