/// <summary>
    /// Call after the start node has been assigned
    /// </summary>
    public void Setup(Vector3 finalPosition)
    {
        pathManager.GetRandomPath();
        pathManager.CalculatePathSpline();
        pathManager.AdjustFinalPosition(finalPosition);
        targetTransform.position = pathManager.startNode.transform.position;

        // Look at the end node. Rough heuristic, will smooth out in a few frames
        targetTransform.rotation = Quaternion.LookRotation(pathManager.selectedPath[pathManager.selectedPath.Count - 1].transform.position - targetTransform.position, Vector3.up);

        elapsedPathWalkTime = 0f;
        isWalkingPath       = true;
    }