I am having an issue with my NavMeshAgent teleporting when a new “SetDestination function is called”. I am attempting to have my agent walk to a random point within the nav mesh. I am observing the agent teleporting to it’s destination instead of translating there at the set speed.
I am using Unity 5.0 beta 18 release but I haven’t seen any reported bugs or answers about that being the issue.
Here is the script I am using to set a new random destination
using UnityEngine;
using System.Collections;
public class PetPathing : MonoBehaviour {
private NavMeshAgent agent;
private Transform targetPoint;
private Transform destination;
private float timer;
// Use this for initialization
void Start () {
agent = gameObject.GetComponent<NavMeshAgent>();
destination = gameObject.transform;
targetPoint = setNewDestination();
agent.SetDestination(targetPoint.position);
timer = 0f;
Debug.Log(string.Format("New destination has been set at {0}", targetPoint.position));
}
// Update is called once per frame
void Update () {
timer += Time.deltaTime;
Pathing();
Debug.Log(agent.updatePosition);
}
private void Pathing()
{
if (timer > 5.0f)
{
targetPoint = setNewDestination();
agent.destination = targetPoint.position;
timer = 0f;
Debug.Log(string.Format("New destination has been set at {0}", targetPoint.position));
}
}
private Transform setNewDestination()
{
destination.position = new Vector3(Random.Range(-6f, 6f), 0, Random.Range(-6f, 6f));
return destination;
}
}
I have tried re-baking the navmesh as well as setting the agent’s speed and acceleration to very low values.
Any help with this would be extremely appreciated.