Пример #1
0
        public Detour.dtNavMeshQuery GetNavMeshQuery(uint mapId, uint instanceId, List <uint> swaps)
        {
            MMapData mmap = GetMMapData(mapId);

            if (mmap == null)
            {
                return(null);
            }

            if (!mmap.navMeshQueries.ContainsKey(instanceId))
            {
                // allocate mesh query
                Detour.dtNavMeshQuery query = new Detour.dtNavMeshQuery();
                if (Detour.dtStatusFailed(query.init(mmap.GetNavMesh(swaps), 1024)))
                {
                    Log.outError(LogFilter.Maps, "MMAP:GetNavMeshQuery: Failed to initialize dtNavMeshQuery for mapId {0} instanceId {1}", mapId, instanceId);
                    return(null);
                }

                Log.outInfo(LogFilter.Maps, "MMAP:GetNavMeshQuery: created dtNavMeshQuery for mapId {0} instanceId {1}", mapId, instanceId);
                mmap.navMeshQueries.Add(instanceId, query);
            }

            return(mmap.navMeshQueries[instanceId]);
        }
Пример #2
0
        public Detour.dtNavMesh GetNavMesh(uint mapId, List <uint> swaps)
        {
            MMapData mmap = GetMMapData(mapId);

            if (mmap == null)
            {
                return(null);
            }

            return(mmap.GetNavMesh(swaps));
        }