Asset Store: https://www.assetstore.unity3d.com/en/#!/content/85181 Hello! For some time im working on my own implementation of navigation mesh. I started it cause no other navmesh do what i want. And kinda cause i want to know how it work and how to write code. Now i have somewhat working prototype and wanna to share it, get some info, advices, etc. So. My goal was to make global chunk grid like Unity does but retain ability to disconnect chunks and redo it if needed. All chunks must be computed in threads as much as it can so "redo" operation can be done while playing. Also i wanted to have different areas and some sort of jump connections. And it kinda doesn't matter how much memory used while computing each chunk cause it imited by amount of processed chunks at same time. So i make temporary information storing kinda bad but rich as possible and it's became easy to add features. Current features list: Different passability. Right now areas are optionaly divided to "walking" and "crouching" but it's not hard to add somthing like сlimbing or crawling or whatever. Different areas. It speaks for itself. Areas have different cost and it's cool stuff. I have global dictionary whith areas and gameobjects can generate own areas so potentialy have reference to navmesh through GO component to pass info back and forth. Also i add ability to associate areas dictionary to splat map on terrain so it can be just painted this way and it knida works very good. Multiple layers of navmesh. Navmesh can have multiple "floors" stack on top of each others. Jumping spots. Right now just up and down and it kinda suck but it works. I added concept of different type of "area". where one voxel can "capture" voxels around it and this type of areas can be passed to outline edges of navmesh if it have "captured" voxels in proximity. So i have lots of "jumping spots" and work around that. Right now jumping spots try to generate landing spots near them. Later on will expand this. Grid. It's kinda userful to have set of reachable points in proximity so these points can be tested to line of sight or distance to enemy or whatever. Covers. If just cover needed navmesh can generate cover planes in proximity to obstacles. It's actualy just reused Marching Squares and Ramer Douglas Peucker algorithm with different information. Right now there is low and high covers. Redo chunks. chunks can be disconnected and generated new one so navmesh can be partialy updated. Mupliple agents types support. Agent properties is key to graph dictionary inside chunks. So there can be multiple navmeshes for different agents. Also navmesh are can have different resolution. NavMesh Raycast. You can check visibility on navmesh for changing Area or just hole in graph. Local Avoidance. Agents move around and avoid each others. Cool stuff. Questions: Also is there some good way to get z-buffer as float array from camera? Right now i can only rasterize triangles of mesh wich plased on collider space. Much like Rain does. But it will be cool if i can use z-buffer from camera to do rasterization part. Any advices or requests?