private bool TryPathfind(Vector3 targetPosition)
    {
        if (agent.CalculatePath(targetPosition, path))
        {
            pathDistance = path.CalculateDistance(pathCorners, out pathCornerCount);

            if (pathDistance <= maxPathfindDistance || pathCornerCount <= maxPathfindCorners)
            {
                agent.Warp(targetPosition);
                return(true);
            }
        }

        return(false);
    }