private void FinishCalculateNavmesh(NavMeshToolPath path)
 {
     calculating_path = false;
     path_found       = path.success;
     nav_paths        = path.path;
     path_index       = 0;
 }
 private void FinishCalculateNavmesh(NavMeshToolPath path)
 {
     calculating_path = false;
     follow_path      = path.success;
     nav_paths        = path.path;
     path_index       = 0;
     navmesh_timer    = 0f;
 }
        public static void CalculatePath(Vector3 from, Vector3 to, int layerMask, UnityAction <NavMeshToolPath> callback)
        {
            NavMeshToolPath tpath = new NavMeshToolPath();

            tpath.from      = from;
            tpath.to        = to;
            tpath.layerMask = layerMask;
            thread_list.Enqueue(tpath);

            //Async (NavMesh.CalculatePath) dont work outside of main thread, when unity fix this we can use this function instead
            //DoCalculatePath(tpath, callback);

            //Temporary until unity add support for NavMesh.CalculatePath outside of main thread
            CalculateThread();
            callback.Invoke(tpath);
        }
        private static async void DoCalculatePath(NavMeshToolPath tpath, UnityAction <NavMeshToolPath> callback)
        {
            await Task.Run(CalculateThread);

            callback.Invoke(tpath);
        }