public static PathFollower FollowPathToPoint(this Transform transform, string pathName, Vector2 targetPos, float moveSpeed)
    {
        PathData pathData     = WaypointManager.instance.GetPathData(pathName);
        var      pathFollower = PathFollower.Create(transform);

        if (pathData != null)
        {
            pathFollower.FollowToPoint(pathData, moveSpeed, targetPos);
        }
        else
        {
            Debug.LogError(string.Format("[WaypointManager] couldn't find path('{0}')", pathName));
        }
        return(pathFollower);
    }
    public static PathFollower FollowPath(this Transform transform, string pathName, float moveSpeed,
                                          FollowType followType = FollowType.Once, FollowDirection followDirection = FollowDirection.Forward)
    {
        PathData pathData     = WaypointManager.instance.GetPathData(pathName);
        var      pathFollower = PathFollower.Create(transform);

        if (pathData != null)
        {
            pathFollower.Follow(pathData, moveSpeed, followType, followDirection);
        }
        else
        {
            Debug.LogError(string.Format("[WaypointManager] couldn't find path('{0}')", pathName));
        }
        return(pathFollower);
    }