AI Navigation

In this example, we make use of the new NavMeshCharacter component introduced in version 1.4.0 to implement a typical click-to-move movement.
public class ClickToMove : MonoBehaviour
{
public Camera mainCamera;
public Character character;
public LayerMask groundMask;
private NavMeshCharacter _navMeshCharacter;
private void Awake()
{
_navMeshCharacter = character.GetComponent<NavMeshCharacter>();
}
private void Update()
{
if (Input.GetMouseButton(0))
{
Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hitResult, Mathf.Infinity, groundMask))
_navMeshCharacter.MoveToDestination(hitResult.point);
}
}
}
This utilizes the NavMeshCharacter to instruct the character to move to the world position where the player clicked. Internally, this uses a NavMeshAgent to intelligently traverse the world.