- 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