前回の記事に引き続き、あらたな動く障害物(回転ドア)を設置し、骸骨さんに試してもらいました。

こんな感じ。
今回は回転ドアを追加してみました。回転ドアはこれまでの障害物とは異なり、NavMeshに穴を開けないようにしています。そのため、(タイトルに語弊ありになってしまいましたが、)回転ドアの状態によってAI(骸骨さん)が進路変更を行うことはありません。

 
今回の設定。障害物オブジェクト(「RevolvingDoor」)を作って、NavMeshObstacleコンポーネントと、動かすスクリプトをアタッチしてあげます。NavMeshObstacleコンポーネントは、回転ドアを構成する2枚のドア板オブジェクトそれぞれにアタッチしています。
SnapCrab_NoName_2017-1-9_15-48-27_No-00
SnapCrab_NoName_2017-1-9_15-48-35_No-00
 
NavMeshObstacleの設定はこんな感じ。
Carveにチェックを入れていないので、この回転ドアはNavMeshに穴を開けません。回転ドアの状態によってNavMeshに穴をあけてしまうと、AI(骸骨さん)が経路探索で迷ってしまうためです。
Carve設定なしのNavMeshObstacleを付けることによって、AIは(経路変更は行わないものの、)そのオブジェクトを障害物として認識することができます。(逆にBakeされたNavMeshの上に、NavMeshObstacleの付いていないオブジェクトが置いてあっても、認識せずにすり抜けてしまいます)
SnapCrab_NoName_2017-1-9_15-51-52_No-00

回転ドアにCarve設定を付けて失敗したときの動きはこんな感じ。NavMeshがつながったり離れたりするので、骸骨さんが経路探索で迷っているのが分かります。



今回は以上です。