public void GetPathsToRoomsAndObjects(Camper camper, List <Room> rooms, List <RoomObject> objects) { MultiRoomPathFinder MRPF = getAvailableMRPF(); if (MRPF == null) { MRPF = new MultiRoomPathFinder(camper, rooms, objects); } else { MRPF.Inizialize(camper, rooms, objects); } MRPF.CalculatePaths(); multiRoomPathFinders.Add(MRPF); }
// Update is called once per frame void Update() { //for each MRFP, check if all paths have been generated foreach (MultiRoomPathFinder MRPF in multiRoomPathFinders) { if (MRPF.PathsAreGenerated()) { MRPF.SetPathFollowerData(); toRemove.Add(MRPF); } } //Stop checking values for MRPFs that are no longer being used if (toRemove.Count > 0) { foreach (MultiRoomPathFinder MRPF in toRemove) { multiRoomPathFinders.Remove(MRPF); MRPF.Dispose(); availableMRPFs.Enqueue(MRPF); } toRemove.Clear(); } }