Will this colution work in Unity

Aug 24, 2013 at 3:18 PM
I am making a tank game in unity. The levels are pretty simple. Flat 2d plane with a boundary wall (like an arena) and maze like walls in the level. Can I use this A* implementation for path finding in my game? there are some obstacles as well .. but they are just cubes, no irregular shapes etc. I see your utility is called hex grid, will it work for my scenario? I was looking for grid graph initially.
Also, now i read you have seperated out the logic from UI, so I am hopping I could use it in my game. Any pointers where I should start?
Aug 26, 2013 at 1:22 AM
I have not worked with Unity, so I cannot comment directly on your first question.

However as you noted, the library HexUtilities.dll is independent of the WinForms implementation used in the example, so it should be possible. You will want to reference either the class HexGrid or HexBoard I suspect as your starting point.

The algorithms do assume the existence of a hexagonal grid defining the connectivity,

Call back with ay specific problems you encounter
Oct 9, 2013 at 3:43 PM
Neat stuff!

I do work on Unity3d project as well. Unity uses Mono implementation and not higher than 3.5... So there are issues expected even with the library.

So far the affected areas are: System.Threading, System.Drawing, ISet.

Is there a plan to adapt the library to be more platform independent and probably support .Net 3.5? Or any suggestions how can I do it by myself?

Oct 11, 2013 at 6:17 PM
Hi Sergey,

Thank you for the compliment.

No, I have no plans to support older versions of he Framework in the official releases. However I will certainly assist you with any specific issues you encounter with porting the library back to an older Framework.

To consider the case of the new async/await functionality introduced in 4.5: All the Async methods (such as GetFieldOfViewAsync) are implemented in terms of the synchronous methods named without the Async suffix (ie GetFIeldOfView) in accordance with the DotNet standard. You can either choose to simply call the synchronous method, or hand-roll your own asynchronous wrapper.

However I might be convinced to create conditional compilation constants for the different framework versions, and to put specific uses of certain newer features inside those. Let me think on that.