AnyPath
Bart van de Sande
$24.99
$29.99
17%OFF
Date |
Price |
---|---|
Date |
Price($) |
03/14(2022) |
29.99 |
03/14(2022) |
26.99 |
06/02(2022) |
29.99 |
10/24(2022) |
24.99 |
11/24(2024) |
24.99 |
Jump AssetStore
AnyPath is a completely generic, lightning fast A* pathfinding solution for Unity.AnyPath uses Unity's job system and the Burst compiler. All of the heavy lifting is done on multiple threads and by highly optimized burst compiled code.Because all of the customizability is done via generic type parameters, all of the code is generated at compile time. This means there is zero overhead in defining custom functionality. On top of that, there's an efficient managed layer that hides the complexity of managing the native jobs, making it extremely easy to use.For a complete overview, see the online documentation at https://anypath.bartvandesande.nlWho's this for?AnyPath was designed for intermediate to advanced programmers with customizability in mind. If you just need a drop in solution for AI, then this framework is not for you. If you need total control over your data layout and fast pathfinding, then AnyPath is for you.What's not included?- No agent code, you write the movement code yourself. AnyPath only provides a (processed) path to follow- No dynamic obstacle avoidance, as this is beyond the scope of A* and very game dependant- Graph serialization (except for the platformer graph), as usually the graph can be easiliy generated at runtime. You can write your own serialization though.- The platformer graph is the only graph which has a built in edit tool, other data structures need to be generated at runtime.- No bi-directional A* search, search is always from start to goalPrice dropped from $29,99 to $24,99!Version 1.5- A 3D voxel grid that's easily extendable with out of the box support for various movement types.Version 1.4- Zero allocation finders! Managed path finding queries now have the option to reduce managed allocations, allowing them to be used without creating any garbage at all.- Dijkstra algorithm supports edge modifiers.- The NavMesh can now generate more straight paths for grid like meshes.Version 1.3- Managed Dijkstra finderVersion 1.2- New graph: LineGraph, a versatile 3D waypoint system- New graph: NodeGraph, a simple 3D node based waypoint system.- Dramatic octree and quadtree performance improvementsVersion 1.1- NavMeshGraph: Fast welding of vertices together using Unity's Job system, useful for large graphs and frequent updates- NavMeshGraph: Can be populated and calculated inside of a burst compiled job now, useful for frequent updates- NavMeshGraph: AABB triangle overlap queries, useful for cutting out triangles in a given area- Breaking change: The NavMeshGraph constructor using NativeArrays now makes an internal copy of the data. Which prevents memory safety issues and allows the graph to be generated on another thread.- PlatformerGraph: Fast welding of vertices together using Unity's Job system, useful for frequent updates- PlatformerGraph: Can be populated and calculated inside of a burst compiled job now, useful for frequent updates- PlatformerGraph: Graph can be drawn using the PlatformerGraphDrawer with automatic joining of vertices, making it extremely easy to generate a graph on the fly- Fast copying of NavMesh, Platformer Graph, Quad- and OctreeVersion 1.0- Completely customizable graph data structures using generic types- Grids or any number of dimensions are supported- Leverages Unity's Job system and the Burst compiler, so performance and multithreading by default- Works in jobs and with Unity ECS by utilizing the core building blocks in the AnyPath.Native namespace.- A managed layer on top of the native code that is extremely easy to use- Fully automated memory management (Non-ECS only). No need to worry about multi threading or race conditions, even when rebuilding your graph structure live.- "Evaluate Only" requests that skip reconstructing a path in cases where it is sufficient to only check if a path exists, saving resources!- Native support for adding extra stops in between the start and the goal of a request.- Planning by giving a request a set of target objects- Target picking by evaluating a set of target objects. Automatically generating a path to it.- Target picking by evaluating which target is closest on the graph.- Validating and reserving targets (Non ECS) without race conditions.- "Edge Modifiers" that allow for applying small changes to a graph without the need to rebuild the entire graph. A door being open or closed for instance.- Batch pathfinding operations. Evaluate multiple paths in a single job.- ALT heuristics for any type of graph, which can significantly speed up pathfinding on very large and complex graphs.- Object pooling is used where possible, so very low GC pressure- 2D square grid- Hexagonal grid- 3D navigation mesh with support for curved surfaces- A specialized platformer 'waypoint' graph- Full source code includedThe built in graphs also come with some utility classes that are neccessary for them to work properly, which you can use for your own custom graphs or any other kind of use you see fit:- Burst compatible quadtree and octree implementations optimized for raycast queries.- A 3D mesh welder utility, which welds together very close vertices on meshes.- Burst compatible priority queue- String pulling algorithms for straightening paths on a navigation mesh- String pulling algorithm for usage with realtime steering behaviour- Various geometry and math related utility functions