Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Isometric 2.5D Toolset

Discussion in 'Assets and Asset Store' started by BlackMat, Jan 16, 2015.

  1. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Make 2.5D isometric game easy!

    Links
    -->Site<--
    -->Web Demo<--
    -->Asset Store<--

    Features
    • Automatic sorting 2D isometric tiles and objects;
    • Sorting objects with single-tile size as well as multiple-tiles size;
    • Auxiliary functions for converting isometric coordinates into screen coordinates and conversely;
    • Placing and snapping of objects in the Unity editor;
    • Helpful mouse and touch functions;
    • Custom isometric tile angle, ratio and height;
    • Support multiple isometric worlds in a scene with different settings;
    • Mix 2D and 3D support;
    • Physics support! (Colliders, Rigidbodies, Trigger and Collision events);
    • Full PlayMaker support.

    Usage Video

     
    Last edited: Oct 25, 2020
    cassionh likes this.
  2. HappyMoo

    HappyMoo

    Joined:
    Dec 8, 2013
    Posts:
    31
    This looks interesting. Will give it a try this week or next weekend.
     
  3. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Thanks!

    Good luck :)
     
  4. Ryukishi

    Ryukishi

    Joined:
    Jan 26, 2015
    Posts:
    8
    Hi, I bought an additional license, how do I send it to my coworker?
     
  5. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Just copy extension folder to your coworker?
     
    Last edited: Jan 26, 2015
  6. Ryukishi

    Ryukishi

    Joined:
    Jan 26, 2015
    Posts:
    8
    Thanks
     
  7. HappyMoo

    HappyMoo

    Joined:
    Dec 8, 2013
    Posts:
    31
    A few comments.

    - You always seem update the whole world if only one tile changes. Why not update just that tile? This looks like it will get slugish really fast with high tile counts. And this isn't only in the editor. If I'm doing a simple animation of one tile while the game runs, you scan all tiles, build up this dependency list, which is an O(n^2) operation and place all tiles again. For me the problem looks like the depth calculation could be based on a formula that absolutely places every tile, so you only need to calculate the depth of the changing tile, not of all.
    You may need to check the max size of each tile once at game start or when you add new tiles and store it in the world, so you know how much to offset the dept for each layer, but that should be all the dependency needed, then you can calculate the sortingOrder only for the changing tile absolutely.
    Otherwise in a 10x50 world with animation, in every frame you rebuild your 500+ ObjectInfo list and trash the old objects again and your dependency scan does 250000+ steps etc. and then all the Vector3 that get recreated and trashed every frame.

    - Bug: In your example Scene2, if you remove the first top layer of tiles, you see that the floor tile on the second floor that is closest to the camera doesn't get sorted above the front pillar Cube_1x1x3

    - Some documentation stating how to calculate the sprites origin would be nice, not everybody may realize this immediately and in your video you also seem to wing it a little at one point instead of calculating the exact value and then setting it.

    - You force a pixel per unit of 1 for the sprites - This isn't felxible enough and should be changed, so the developer can use his own scale to allow to control the orthographicSize as needed.

    This looks promising so far, but I can't recommend it for games above a certain tile count - especially not on mobile. And the missing flexibility in "pixel per unit" means you have to start with this Asset and adapt everything else to its needs, which makes adding this in a later gamedev stage harder.

    I'm delaying my asset store user review till I know if you plan any changes.

    edit:
    Regarding the calculation of the sprite origin, I forgot to add, that this is especially important for tiles of size 2x2, 4x2, etc., which you don't demonstrate in your examples. The origin can't be placed on the middle tile for those. And actually, your code for "max_ax" etc. seem to indicate that it shouldn't be placed on the middle tile for 3x3 tiles either, which you did and this might cause the bug above, as your code seems to assume the tile size goes from pos.x to pos.x+size.x, not from pos.x +- size.x/2 ...
     
    Last edited: Jan 27, 2015
  8. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Thanks so much for your comments!

    About algorithm:
    I thinking about it and I will try to implement more faster method.

    About pivot point:
    Pivot point must be set to center first iso tile in object... i will try to write documentation about it )

    > Bug: In your example Scene2,
    incorrect pivot for floor_3x3, i will fix it in next version :)

    > You force a pixel per unit of 1 for the sprites
    This does not necessarily, you may calculate tile size in IsoWorld as TileSize/PixelPerUnit
     
  9. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Version 1.1
    Fix some bug (#1, #2) from bug tracker:
     
  10. HappyMoo

    HappyMoo

    Joined:
    Dec 8, 2013
    Posts:
    31
    You should link to the assetstore from your original post above and also to the bugtracker and what else could be interesting.

    What are your plans regarding the other bugs and feature requests?
     
  11. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Version 1.3
    New 'UpDown' isometric type (like jrpg).
    Optional sorting flag.
    New TilePosition function.
    Added Unity 5 support.
    Fix some bug (#3) from bug tracker.
     
  12. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    All bugs fixed.
    For next version I am working on the new algorithm sorting for moving objects :)
     
  13. sathya

    sathya

    Joined:
    Jul 30, 2012
    Posts:
    297
    Hi,
    Just bought the plugin. I want to achieve top down isometric map. but this plugin does not allow that. transform is restricted to only two axis. Can you confirm whether top down isometric grid is achievable ? And do you have any guidelines for creating custom isometric tiles. My tiles don align properly. Thanks

    can you modify this code and support top down support as well
    Code (CSharp):
    1. public Vector2 IsoToScreen(Vector3 pos) {
    2.         switch ( TileType ) {
    3.         case TileTypes.Isometric:
    4.             return new Vector2(
    5.                 (pos.x - pos.y),
    6.                 (pos.x + pos.y) * 0.5f + pos.z) * TileSize;
    7.         case TileTypes.UpDown:
    8.             return new Vector2(
    9.                 pos.x,
    10.                 pos.y + pos.z) * TileSize;
    11.         default:
    12.             throw new UnityException("IsoWorld. Type is wrong!");
    13.         }
    14.     }
    15.    
     
    Last edited: Feb 19, 2015
  14. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi, Sathya!
    Plugin support two isometric types:
    'Isometric' like >this< and 'UpDown' like >this<

    Show me any reference to isometric (game or pictures) which you want to make, please.
     
  15. sathya

    sathya

    Joined:
    Jul 30, 2012
    Posts:
    297
    Attached screenshot of my game itself. I have tile images and having difficult aligning and snapping so i purchased this package. I want it to top-down for other technical reasons. With some modifications to your system we can support top-down isometric as well i assume. May be it will help other developers also in future. Thanks
     

    Attached Files:

  16. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    I'll think about it, but actually you're using 3D mode instead of 2D mode...that's weird
     
  17. sathya

    sathya

    Joined:
    Jul 30, 2012
    Posts:
    297
    I am using 3D cars on it. So i need it to be in top-down mode. Updates to the same plugin will make my work 200% faster;).
     
  18. sathya

    sathya

    Joined:
    Jul 30, 2012
    Posts:
    297
    Any updates !
     
  19. Double_O

    Double_O

    Joined:
    Feb 14, 2015
    Posts:
    2
    I'm pretty new to Unity in general, but using this toolset, how would you apply your own sprites into it like characters or specific titles?
     
  20. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Watch the video of the first message, I add sprites there
     
  21. RobertOne

    RobertOne

    Joined:
    Feb 5, 2014
    Posts:
    258
    Hey!
    this looks pretty interesting. I always avoided Isometric 2.5D cause i was scared about the whole sorting thing but this asset will make it a lot easier.

    i have a simple question: Did you ever tried to mix 2.5D Isometric Backgrounds with 3D Characters? like "Kingsroad" or the "Ultima" Game for iOS is doing it? would that be possible with your toolkit?
     
  22. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi, RobertOne! In the next version I will update sorting algorithm to make it much faster. And after that I'll think about mix 3D and 2D.
     
    RobertOne likes this.
  23. sathya

    sathya

    Joined:
    Jul 30, 2012
    Posts:
    297
    @blackmat
    Any news on supporting top-down view to create isometric grids. Waiting for your response. I cant use the plugin in its current state.
     
  24. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Version 1.4
    Added the new sorting algorithm to improve performance noticeably.
     
    RobertOne likes this.
  25. sathya

    sathya

    Joined:
    Jul 30, 2012
    Posts:
    297
    Any news on top down support ?. Should i be waiting for the feature ?
     
  26. Double_O

    Double_O

    Joined:
    Feb 14, 2015
    Posts:
    2
    Hello again Blackmat. How would you go about making the wall objects impassible?
     
    Last edited: Apr 5, 2015
  27. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello! It depends on what do you want :)
     
  28. AlyonaOS

    AlyonaOS

    Joined:
    Apr 16, 2015
    Posts:
    1
    Hi! Useful stuff, but there are a few comments.
    Does not support nested sprites - components and IsoObect and SpriteRenderer must be on the same object. Worth GetComponent<Renderer>() replaced by GetComponentsInChildren<Renderer>().
    If the tile is not visible, MarkDirti not work. For the case if the scene is created from the script is not good ... I should add the possibility of forced updates sorting tiles ... For example,
    if (renderer.isVisible || !UpdateOnlyVisible) {....}
     
  29. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Version 2.0
    Physics support! (Colliders, Rigidbodies, Trigger and Collision events)
    Many helpful upgrades for editor
    New samples
    Bug fixing

    -->Release Page<--
     
    schmosef likes this.
  30. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
  31. San_

    San_

    Joined:
    Jul 21, 2015
    Posts:
    1
    Hi! Just purchased this and found a bug with the physics. In example scene 2, gravity is on the wrong axis.

    Once this is fixed I can test and review this.
    Thank you!

    EDIT: Also this
    http://imgur.com/uSj1nFy
     
    Last edited: Jul 21, 2015
  32. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello San_!

    Gravity settings are the part of project settings, so you just have to change them here: "Edit->Project Settings->Physics", like this: (My plugin doesn't change project settings)
     
    San_ likes this.
  33. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    My bad, I set wrong parameters for "player" and "balls" colliders when I submitted plugin to the store, and fixed them only web-demo.
    To fix it please set parameters for colliders as well as I did it:
     
    San_ likes this.
  34. Victor-Cardona

    Victor-Cardona

    Joined:
    Apr 6, 2011
    Posts:
    14
    Hello everyone, I have a problem whit the show bounds option, my isometric game have another angle direction, but the Iso Object script make a specific angle direction, how I can change the bounds to another angle direction?

    Thanks.
     

    Attached Files:

  35. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    it is unsupported in this moment, but I am working on it! Please wait a new version plugin :(
     
  36. Victor-Cardona

    Victor-Cardona

    Joined:
    Apr 6, 2011
    Posts:
    14
    Hello BlackMat

    It is bad news, but I hope that the new version of the plug-in come very soon.

    Thanks.
     
  37. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    341
    hi there, any news on the mixing 3D and 2D feature?
     
  38. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269

    Coming soon, maybe next version :)
     
  39. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Mix 2D and 3D. Work in progress...
     
    ikemen_blueD and schmosef like this.
  40. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Mix 2D and 3D. In Depth...
     
    schmosef likes this.
  41. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Mix 2D and 3D is already done, but isn't released yet.
     
  42. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Custom isometric tiles. Work in progress...
     
  43. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Version 2.1
    - add mix 2D and 3D support
    - custom isometric tile angle, ratio and height
    - add some mouse and touch functions
     
  44. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Add simple documentation for methods and properties. -->Link<--
     
  45. overweightcat

    overweightcat

    Joined:
    Aug 23, 2013
    Posts:
    12
    Hi, i quite interested at your products but is it possible to make stairs using your plugin ?
     
  46. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi! Of course it's possible.
     
  47. vincismurf

    vincismurf

    Joined:
    Feb 28, 2013
    Posts:
    200
    Love this toolkit!!! However I can't seem to get the ISO Physics working, the player will fall thru the level on the test level. I also cannot get any callbacks. Can you help?
     
  48. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Thanks! You can watch video example and sample with physics (in Scenes folder).
     
  49. overweightcat

    overweightcat

    Joined:
    Aug 23, 2013
    Posts:
    12
    I just bought the plugin and i would say it's pretty come in handy for my RPG based game using isometric as the tiles.
    Just wondering, do you have any documentation to implement stairs ,so the character walking through the tiles can move up / down ?
    Thank you in advance
     
  50. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    You can simple change positionZ for IsoObject for move character up/down.
    Also you can find documentation here: http://matov.me/2015/09/07/isometric-2-5d-toolset-documentation/