Unity – “SetDestination”只能在已放置在NavMesh上的活动代理上调用。 UnityEngine.NavMeshAgent:SetDestination(的Vector3)

我现在正在使用Unity5。 尝试setDestination时出现此错误。

“SetDestination”只能在已放置在NavMesh上的活动代理上调用。 UnityEngine.NavMeshAgent:SetDestination(Vector3)CompleteProject.EnemyMovement:Update()(在Assets / _CompletedAssets / Scripts / Enemy / EnemyMovement.cs:30)

我的代码。

using UnityEngine; using System.Collections; namespace CompleteProject { public class EnemyMovement : MonoBehaviour { Transform player; // Reference to the player's position. PlayerHealth playerHealth; // Reference to the player's health. EnemyHealth enemyHealth; // Reference to this enemy's health. NavMeshAgent nav; // Reference to the nav mesh agent. void Awake () å{ // Set up the references. player = GameObject.FindGameObjectWithTag ("Player").transform; playerHealth = player.GetComponent  (); enemyHealth = GetComponent  (); nav = GetComponent  (); } void Update () { // If the enemy and the player have health left... if(enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0) { // ... set the destination of the nav mesh agent to the player. nav.SetDestination (player.position); } // Otherwise... else { // ... disable the nav mesh agent. nav.enabled = false; } } } } 

请指教。 谢谢。

参考: https : //github.com/datomnurdin/SurvivalShooter

在使用NavMeshAgent或与Navigation相关的任何其他内容之前,您需要向场景添加Navmesh。

以下是Unity关于导航的一些video

1.确保你的第三个控制器位于地面以上。

2.转到窗口 – >导航 – >烘烤并单击烘焙。蓝色区域是第三方可以到达地面的地方。

  1. 您的地板(平面或四边形)必须是静态的。
  2. 添加NavmeshAgent组件是您的玩家或敌人。

您可以在检查器面板上找到静态复选框