Can you talk more about the toolset you're using for isometric stuff in Unity? I haven't seen it covered in a lot of places and I'd really like to know whats working and not working for you here.
No problem, will try and answer your question to the best of my ability.
I first started off trying to understand how an isometric grid actually works, and found a lot of useful information with these 3 links:
http://www.gamedev.net/page/resources/_/technical/game-programming/isometric-n-hexagonal-maps-part-i-r747http://gamedevelopment.tutsplus.com/tutorials/creating-isometric-worlds-a-primer-for-game-developers--gamedev-6511http://stackoverflow.com/questions/892811/drawing-isometric-game-worldsOnce knowing the math involved and the theory behind it, placing a tile(s) on an isometric grid was definitely not that hard to integrate into Unity.
By converting the mouse position on the screen to an isometric point ( which is easy to find on the web ) I was able to place tiles wherever I wanted.
To make everything more manageable I grouped tiles into layers, for example, all floor tiles will be the child of the 'floor layer' gameobject and all walls will be the child of the 'wall layer' gameobject.
Another thing which I also think is very important is your tile graphics.
-The complexity of your maps can greatly increase the amount of work you need to do in the editor, having less tiles to automate is a lot less scenarios to deal with when trying to put things together through code.
-If they are not cut to fit, then you may end up with more headaches than you need. It's very important to make sure that your tile graphics actually tile properly before trying to put them together with an editor.
Things start getting complicated when you try and automate some tasks, for example:
Automating the process of placing walls around a floor tile(s)Automating the process of placing transition floor tiles around each other ( eg grass, mud, snow, water or stone pathways )Once you know what tile should be placed where, it's then ironing down the scenarios that could possibly occur, which is easier to think about if you imaging each floor tile knows what spaces are free according to itself ( top, bottom, left, right etc ) and then closing it off with whatever walls you may need.
I pretty much used the same logic when it came to automating any process which then led to me thinking of a way to have a template with all the tiles I needed ( floors, angled walls, top corner walls, backfacing walls ) and grouping them into one palette for me to reference through code.
Ah and one last thing which I may be wrong about
. When automating the process of placing tiles, I was always worried about the number of tiles I may have to check. Turned out that the only tiles are really had to check was the current tiles direct neighbours.
Imagine tile 5 is the tile you just placed, you only need to check the other tiles around it and figure out whether or not to update them.
In some scenarios, you may have to expand it a bit further, but it really depends on what you are trying to do.
There are some tutorials out there to help automate the process of tile placement:
http://www.angryfishstudios.com/2011/04/adventures-in-bitmasking/I didn't use this method because it was then about organizing the tile sets graphics ( and those where a pain in the first place )
I went ahead and did it the way I thought was best for our particular game, which may not be the best way, but it seemed to do the job for what we needed, I will probably change it *again* in the future but for now it works.
Hope I've helped you out in some way.