"setdestination "はNavMesh上に置かれたアクティブなエージェントに対してのみ呼び出すことができます.


問題点:
私はユニティ5に新しいです.私は、setdestinationをしようとしている間、以下のエラーに直面しています.
"setdestination "はNavMesh上に置かれたアクティブなエージェントに対してのみ呼び出すことができます.UnityEngine.NavMessagent : setdestination ( vector 3 ) completeProjectEnteryMovement : update () (資産/不正補完資産/スクリプト/エネミー/エネミームーブメントcs : 30 )
あなたの参考のために私のコードの下で見つけてください.
UnityEngineを使用します
システムの使用コレクション
名前空間MyCompleteProject
{ }
パブリッククラス神話運動:MymonoBehavior
{ }
変換選手;
PlayerHealth PlayerHealths;
浣腸衛生
NavMeshエージェントの
無効にする

プレイヤー= gameObject.FindMameObjectWithtag ("player ").変換する
PlayerHealths =選手.getComponent ()関数
注腸骨
navs = getcomponent ()

void update ()
{ }
( AnimyHealth . currentTheths > 0 & PlayerHealth . currenThealths > 0の場合
{ }
鼻設定します.

        else
        {
           navs.enabled = false;
        }
    }
}

上のコードで何が悪いかわかりますか?誰か私の問題の解決策はありますか.
解決方法
私は複雑なユニティ5コードを書くの業界経験がたくさんある.私はあなたのポストを通り抜けて、あなたの問題を理解しました.
ですから、まず始めに以下のようにして問題を解決しましょう.
  • あなたのThirdPersonControllerが地面より上にあることを確認してください.
  • ウィンドウに移動してください.
  • 青の領域は、3番目の人が地面に到達できる場所です.
    もう一つの解決策
    ステップ1:NavMeshエージェントまたは何か他のナビゲーションに関連する使用する前に、あなたのシーンにNavMeshを追加する必要があります.
    ステップ2:あなたのTrydPersonControllerは地面の上にあることを確認します.
    ステップ3 :ウィンドウに移動し、bakeをクリックします.青い地域は、三人称が地面に達することができるところです.
    ステップ4:あなたのフロア(飛行機またはquad)静的でなければなりません.
    ステップ5:あなたのプレーヤーまたはあなたの敵NavMeshエージェントコンポーネントを追加します.
    インスペクタパネルの静的チェックボックスを見つけることができます
    ステップ6
    NavMeshエージェントを作成し、その位置をTransform経由で設定します.位置.そして、次に、NavMeshエージェントが位置変更を認識していなくて、それがすでにNavMeshにあるということを知らないので、それは失敗します.NavMeshエージェントを使用します.変換の代わりにワープ.setdestinationを呼び出す前に位置を初期化する位置.
    ステップ7
    いくつかのparamsを設定します(チュートリアルはradius = 0.75、height = 1.2、step height =. 0.1)、チュートリアルからの設定の残りはUnity 5で、私が言う限りではなくなります.
    手順8 :
    次のコードはこの問題を解決します
    NAV有効にする