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.转到窗口 – >导航 – >烘烤并单击烘焙。蓝色区域是第三方可以到达地面的地方。
- 您的地板(平面或四边形)必须是静态的。
- 添加NavmeshAgent组件是您的玩家或敌人。
您可以在检查器面板上找到静态复选框