예제 #1
0
 private void FinishCalculateNavmesh(NavMeshToolPath path)
 {
     calculating_path = false;
     path_found       = path.success;
     nav_paths        = path.path;
     path_index       = 0;
 }
예제 #2
0
    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);
    }
예제 #3
0
    private static async void DoCalculatePath(NavMeshToolPath tpath, UnityAction <NavMeshToolPath> callback)
    {
        await Task.Run(CalculateThread);

        callback.Invoke(tpath);
    }