- Home /
NavMeshAgent Move towardes the final point in the path directly
I have NavMeshAgent and some nodes drawn OnMouseDrag and I want to make the agent follow those nodes from the first to the final I assigned those nodes to list of gameobjects in order to be able to loop on this list to make the agent move from gameobject[0] to the final in the list* the problem is * The agent moves from the first point and when I release the mouse the destination is being set to the final point directly I want it to go through all the nodes in curved manner and this is my code
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class AgentWalking : MonoBehaviour
{
private NavMeshAgent agent;
private float distance;
public GameObject node;
private Vector3 lastMousPosition = Vector3.zero;
public List<GameObject> drawnNodes;
private int drawnNode;
// Use this for initialization
void Start()
{
agent = GetComponent<NavMeshAgent>();
distance =4* node.GetComponent<MeshRenderer>().bounds.size.x;
drawnNodes = new List<GameObject>();
drawnNode = 0;
}
// Update is called once per frame
void Update()
{
}
void LateUpdate()
{
StartCoroutine("SetTheAgentDestination");
}
void OnMouseDrag()
{
StartCoroutine("DrawPoints");
}
private IEnumerator DrawPoints()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.tag == "Ground")
{
if (Vector3.Distance(lastMousPosition, hit.point) > distance)
{
drawnNodes.Add(Instantiate(node, new Vector3(hit.point.x, .05f, hit.point.z), Quaternion.identity) as GameObject);
lastMousPosition = hit.point;
}
}
}
yield return new WaitForSeconds(0);
}
private IEnumerator SetTheAgentDestination()
{
if (drawnNode < drawnNodes.Count)
{
agent.destination = drawnNodes[drawnNode].transform.position;
drawnNode++;
yield return new WaitForSeconds(0);
}
}
private void DeleteTheDrawnNodes()
{
Destroy(drawnNodes[drawnNode]);
}
}
Your answer
Follow this Question
Related Questions
How to sample a point on a navMesh Agent path 0 Answers
Navmesh with destructible obstacles 1 Answer
Navmesh Agent Rotation at Destination 0 Answers
Connecting two navmeshes without "Speedboost" 0 Answers
NavMeshAgent Not Accounting for Objects 0 Answers