AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

ThirdPersonShooterを作る(5)

navMeshを入れてみました。味方AIから逃げてもちゃんと追跡してきます(*´ω`*)

f:id:yasu9780:20161009001752g:plain

 navMeshAgentは使わずに、2点で問い合わせると経路パスを返してくれる関数を用います。
 この関数は同期処理なので、複雑な経路の場合はフレーム落ちの原因になります。
 navMeshAgentのsetDestinationは非同期なので、フレーム落ちが気になる場合はダミーのagentを経路探索に使うといいかも。
 navMeshAgentはrigidBodyと競合するし、ジャンプができないといった問題がありますが、普通のrigidbodyのキャラクターに、経路探索だけnavMesh使えば、問題ないと思います。最終的に追いつけばいいので、1秒に一回探索するぐらいで十分かな。

 NavMesh.CalculatePath(transform.position, targetPos, NavMesh.AllAreas, path);

 で、path.corners[1]を次の目的地にします。

 この1ドルの村は経路探索的にはたいした探索空間では無いと思うので、同期処理でもいいと思う。
 profiler見る限りは、経路探索入れる前と後でほとんど差はないです(うちのPCでXGAで100FPSぐらい)

f:id:yasu9780:20161009001441g:plain