- Home /
 
NavMeshAgent issue
I have viewed all the available tutorials ... I am pretty sure. And have followed all the instructions and not gotten an agent to move over a navmesh. But ... I have gotten an agent moving using an Animator Controler to walk the length of the navmesh respecting the non-walkable areas. Although I cannot get this agent to go to a designated target using any of the scripts I have found. And these are darn simple, here is the latest I have tried. Note the commented lines that I also have tried. None of them work. I must be missing something stupid simple. Any help would be appreciated.
 var target : Transform;
 private var NavComponent : NavMeshAgent;
 
 
 function Start () {
 var agent: NavMeshAgent = GetComponent.();
 //NavComponent = this.transform.GetComponent(NavMeshAgent);
 
 //target = GameObject.Find(target.name);
 
 agent.SetDestination(target.transform.position);
 }
 
 function Update () {
     //NavComponent.SetDestination(target.position);
     //GetComponent.<NavMeshAgent>().destination = target.position;
     //this.GetComponent(NavMeshAgent).destination = target.transform.position;
 }
 
              Answer by tanoshimi · Jan 09, 2014 at 02:08 PM
You shouldn't be setting the destination in the Update() loop. This is probably causing a new route to be recalculated in every frame, which is why the agent never starts moving. Instead, only set the destination once, in whatever method causes the agent to choose a new target (i.e. on mouseclick)
Thank you. I did try setting the destination in the Start() function. NavComponent = this.transform.GetComponent(Nav$$anonymous$$eshAgent); NavComponent.SetDestination(target.transform.position); $$anonymous$$y target right now is just an empty game object. $$anonymous$$y character still walks the length of the navmesh right past the target.
Try it by setting a Boolean. This worked fine for me, eg: (C#):
 private bool _setDest;
 public GameObject target;
 public void Update () {
 if(!_setDest)
 {
     GetComponent<Nav$$anonymous$$eshAgent>().destination = target.transform.position;
     _setDest = true;
 }
 
                  If this doesn't work try to increase the acceleration value, this might fix it.
I dont know the syntax for javascript, but it should be similar.
Answer by diggerjohn · Jan 11, 2014 at 05:20 PM
Thank you. I have decided to go to a way point paradigm for now but I will be coming back to this for another project I know needs it in the near future.
Your answer
 
             Follow this Question
Related Questions
Alternative to remainingDistance (Entire Path Calculation)? 0 Answers
NavMeshAgent Different Sizes Help 0 Answers
Navmesh pathfinding "scattering"? 1 Answer
Linerenderer Inconsistency 1 Answer
Moving to points 3 Answers