unity – Character controller versus nav mesh agent for wandering?

I’m starting to work on the AI for my game, and one character will need to wander around aimlessly until one of its other states are triggered. With that, and after plenty of searching, I found a basic wanderer script that uses a character controller to aimlessly wander, quite effectively I might add:

using UnityEngine;
using System.Collections;

public class Wander : MonoBehaviour {
    public float speed = 5;
    public float directionChangeInterval = 1;
    public float maxHeadingChange = 30;
    private CharacterController controller;
    private float heading;
    private Vector3 targetRotation;
    void Awake () {
        controller = GetComponent<CharacterController>();
        heading = Random.Range(0, 360);
        transform.eulerAngles = new Vector3(0, heading, 0);
    void Update () {
        transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, targetRotation, Time.deltaTime * directionChangeInterval);
        var forward = transform.TransformDirection(Vector3.forward);
        controller.SimpleMove(forward * speed);
    IEnumerator NewHeading () {
        while (true) {
            yield return new WaitForSeconds(directionChangeInterval);
    void NewHeadingRoutine () {
        var floor = Mathf.Clamp(heading - maxHeadingChange, 0, 360);
        var ceil  = Mathf.Clamp(heading + maxHeadingChange, 0, 360);
        heading = Random.Range(floor, ceil);
        targetRotation = new Vector3(0, heading, 0);

While this works for what I need with wandering, the AI will eventually need to navigate to a specific point which could be clear across the terrain. I’d prefer to use a nav mesh agent for that, allowing it to automate the route as much as possible.

With that, adjusting this script to use the nav mesh agent instead of or in conjunction with the character controller isn’t a difficult task, but it makes me beg the question, are there performance impacts to using one over the other when it comes to wandering?