Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Unity】NavMeshを設定した環境で「"GetRemainingDistance" can only be called on an active agent that has been placed on a NavMesh.」のようなエラーが発生した場合の対応方法

 

 

 UnityのNavMeshAgentを使用していた時に発生したエラーについての解消方法についての内容です。

 

 

1. 発生したエラー内容

 

今回発生したエラー内容は以下の通りです。

 

"GetRemainingDistance" can only be called on an active agent that has been placed on a NavMesh.
UnityEngine.StackTraceUtility:ExtractStackTrace ()

 

 

2.エラー発生までの経緯

 

 

UnityのNavMeshAgentを使用して自動走行の強化学習を行おうとしていたのですが、学習のための道路環境を1セット作成して学習させたところでは問題なく動作しました。

ここで、学習の高速化を行うためにその1セットをコピーして同一画面内に座標をずらしながら複数の環境を作成して実行させたところ先程のようなエラーが発生しました。

 

 

 3. エラーへの対応方法

 

 

このエラーについて、新しくコピーした環境で NavMesh が正しく設定されているか確認するために再度ベイクを行いました。

 

Unity のメニューから Window > AI > Navigation を開き、Bake タブを選択して、NavMesh を再ベイクします。

 

これを行った後に再度この環境で学習を実行させたところエラーがなくなり実行することができました。

 

自分たちが十分理解してなかったこともありますが、NavMeshした環境を含む環境をコピーなどした場合には再度ベイクが必要ということになります。

 

 

以上が、UnityのNavMeshを設定した環境で「"GetRemainingDistance" can only be called on an active agent that has been placed on a NavMesh.」のようなエラーが発生した場合の対応方法になります。

 

関連記事:

【Unity】Unityで親オブジェクトにアクセスする方法 - Django Girls and Boys 備忘録

 

【Unity】NavMeshを設定した環境で「"GetRemainingDistance" can only be called on an active agent that has been placed on a NavMesh.」のようなエラーが発生した場合の対応方法 - Django Girls and Boys 備忘録

 

【Unity】Unityで背景を設定する方法 - Django Girls and Boys 備忘録

 

【Unity NavMesh】NavMeshObstacleを追加する方法 - Django Girls and Boys 備忘録

 

【Unity】NavMesh、NavMeshAgentの使用方法 - Django Girls and Boys 備忘録

 

【Unity】オブジェクトの影(シェイド)を消す方法 - Django Girls and Boys 備忘録

 

【Unity】オブジェクトの影をなくす方法 - Django Girls and Boys 備忘録