- Home /
Navmesh agent does not operate after building the project
Hi all,
Note to reader! I sent this question to the forum at first. Got my problem solved already. However, I thought that the Answers would be better place to store it for later use in case someone encounters the same misbehavior. Anyway, please feel free to comment.
Original posting starts below.
I have a problem with a Navmesh agent. In my project I have set an agent which I want to move to a desired position. All work as expected in my project while running it in Unity. However, when I build the project the agent does not move anymore but stays in it's initial position.
For example, a function below placed in a script called Mecagent.cs attached in a gameobject works in the project but not after the build.
// Sets new destivation for an agent to target
private void SetTarget () {
Vector3 hit = new Vector3(-21.04f, -13.77f, 4.68f);
agent.SetDestination(hit);
}
Edited this post on 17 December as described below
Tried creating a new project, imported everything. Same situation.
Also changed a SetTarget function in the MecAgent.cs as follows
// Sets new destivation for an agent to target
public void SetTarget (Transform target) {
agent.destination = target.position;
}
which is called from a NavigationTarget.cs by a SendMessage as below
agent.SendMessage("SetTarget", this.transform);
The resulting does not work.
Now I am curious why the SendMessage works when inside OnMouseOver function such as
private void OnMouseOver () {
agent.SendMessage("SetTarget", this.transform);
}
Also, when placing the SendMessage in an Update function the SendMessage goes through. However, I would like to operate only with single function calls. As stated, they work in the project but after the build. Soo - it feals like a hack to operate through the Update.
I am operating with Pro version 4.3.0f4, Mac OS Maverics
I would appreciate if some one could share an insight. Thanks! I will continue on this till I have a solution.
Edit on 19 December: Solution I found is presented on below.
Function below put in the MecAgent.cs
// Sets new destivation for a target
public void SetTargetVector (Vector3 target) {
agent.SetDestination(target);
}
one above is called through a function put in the NavigationTarget.cs
public void toTargetPlace() {
Vector3 moveToTarget = new Vector3(this.transform.position.x, this.transform.position.y, this.transform.position.z);
agent.SetTargetVector(moveToTarget);
}
Pretty much the same what Unity is proposing in their NavMesh guide at http://docs.unity3d.com/Documentatio...oNavigate.html
BR,
Mantsuria
Your answer
Follow this Question
Related Questions
NavMeshAgents bumping into stationary agents 1 Answer
How NavMesh Cost can slow down NavMeshAgent's speed? 3 Answers
Navmesh After Spawn 2 Answers
Navmesh get rotation 1 Answer