Search Unity

Isometric 2.5D Toolset

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

  1. Zyblade

    Zyblade

    Joined:
    Jul 1, 2014
    Posts:
    141
    Very in depth(no pun intended^-^) information, thank you!

    edit: How much faster would it be, just sorting cube sized objects? I tried to simplify my own topological sort, which was way too slow^^, but at the end, I also had to sort them using a graph, if I want exact x, y and z positioning (jumping on top of cubes etc.).

    I'm really curious if it's worth (just performance wise) sorting 6 single cubes instead of one 3x2-sized wall object.

    edit2: oh, in that article you already wrote, that this is only possible with integer z-positions. That's the same what I've found out.
     
    Last edited: Nov 25, 2019
    BlackMat likes this.
  2. Benjaben22

    Benjaben22

    Joined:
    Oct 26, 2012
    Posts:
    75
    @BlackMat I'm having an issue where the sorting starts to fall apart near the edge of the camera. Everything else is running great, but the sort order seems a little weird on the edges. If I scroll the camera towards the edge it looks fine.

    I'm running latest Unity (2021)
     
  3. BlackMat

    BlackMat

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

    Does it happen in the scene view or game view? Also check "Sort in Scene View" IsoWorld property.
    If this does not help, could you send me a minimal project with this problem, or at least make a video?
     
  4. Benjaben22

    Benjaben22

    Joined:
    Oct 26, 2012
    Posts:
    75
    @BlackMat Hi! I ended up solving it by just coding my own sorting values. It was happening only in the game view. And it was only happening with IsoObjects generated at runtime. All the example scenes were fine.
     
  5. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Objects that were created in runtime also should be working correctly (Scene01 example). But don't forget to make it as a child of IsoWorld.
     
  6. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    NechyporukEvgen and schmosef like this.
  7. percyJones6786

    percyJones6786

    Joined:
    Jul 2, 2015
    Posts:
    9
    Hey @BlackMat
    I am working on an isometric game project and after running into a bug with their Z as Y Tilemap ( see forum post https://forum.unity.com/threads/iss...g-with-other-non-tilemap-gameobjects.1423860/). your toolset was recommended to me.

    I have not been using it very long, but it seems to work very well and solves like 80% of my use cases out of the box. I was curious as to whether or not this tool is still in active development or if development has ended now that it is open sourced?
     
  8. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello!

    it's not under active development but works well in its feature subset. I just don't have time to do it right now, but using my solution for isometric sorting will definitely be faster than writing your own from scratch, I think.
     
    percyJones6786 likes this.
  9. percyJones6786

    percyJones6786

    Joined:
    Jul 2, 2015
    Posts:
    9
    Thanks for the reply, and no worries your solution works extermly well even in its current state.

    I was just curious as I have already made some minor changes to the code just wanted to make sure that I didnt need to sync those changes with future updates

    Thanks for creating a great tool
     
  10. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Thank you :) You can send me pull request on github if you think it should be in the main branch!
     
  11. luoweihong

    luoweihong

    Joined:
    May 27, 2019
    Posts:
    56
    I want to know how can i get the isoObject's sortingOrder? is ther any api in your code? if i can get the real sortingOrder, i can mix my code to solve my problem @BlackMat
     
  12. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello. Z-coord of IsoObjects can be considered as sorting order. After all sorting phases of course. Also it works only for visible IsoObjects.
     
  13. luoweihong

    luoweihong

    Joined:
    May 27, 2019
    Posts:
    56
    I do a really complex isometric game, the sorting order confuse me long time, i wonder isoObjects can help me? because if you try to realize a virtual 3d world in 2d,you will get the dealock sorting(three object A>B , B>C, C>A),so i can not solve this problem nicely...
     

    Attached Files:

  14. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Yes, isometric sorting is the main feature of this toolset!
     
  15. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
  16. luoweihong

    luoweihong

    Joined:
    May 27, 2019
    Posts:
    56
    how can i move my character without the limit of the isoobject xyz? i just want to change the transform position,and i will set iso Object position by self to sort this object?
     
  17. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    I don’t quite understand what exactly you want, but why not then make your character an ordinary non-isometric object and just move it as you want. You can also make an isometric object without any view and synchronize them manually with a non-isometric object.
     
  18. luoweihong

    luoweihong

    Joined:
    May 27, 2019
    Posts:
    56
    because isoObject can't change unity position by myself, but i want to set this character position in iso-tools api, and then get a sortingorder, so that i can set character sortingorder and his unity-position, and i found a problem was when i want to get isoObject's transform position, i need to deactive isoworld script, otherwise i will get a zero z position value, what should i do ?
     
  19. MikailY

    MikailY

    Joined:
    Oct 13, 2019
    Posts:
    2
    Hey, we are making a isometric city building game and using your tool which helps us a lot. Thanks for making a great tool. Our world is 2d, we have 3d characters and vehicles that needs to move around. They will follow paths, turn around corners etc. We have a questions though.

    These moving objects will be iso objects so the path also needs to be iso objects right?
    Will this effect performance or should we somehow store this path iso positions in edit time and disable iso objects so in play time they wont take up resources, does this make sense?

    How to rotate these 3d objects around corners? Can it be smooth turn or should we create objects for each rotation(snap turn) under the iso object and enable/disable child for the needed?
     
  20. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    You can't get a sorting value in the same frame where you change the coordinates because the sorting happens once per frame in "LateUpdate" of "IsoWorld". To hack this, you can call "StepSortingProcess" (private by default) function of IsoWorld after coordinate changing, but it will execute all sorting process for all marked object, and it can be very slow to call it more than one time per frame. By the way, you can use "IsoWorld.ScreenToIso" function to convert your screen coordinate to iso-coordinates.
     
  21. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Thanks for using :)

    Not necessary. You can even make it as objects of another IsoWorld, which will always be below the IsoWorld with interactive objects. And, of course, if you disable unnecessary objects that do not need to be sorted, this will improve performance. But always use a profiler, so you don't accidentally make things worse :)

    Rotate your view (3d model for example) in local space, which is added as a child of IsoObject. But don't rotate the IsoObject itself because it is always an axis-aligned bounding box.
     
  22. wechat_os_Qy0-PfPsAHVCRfzvZBjrvEcVM

    wechat_os_Qy0-PfPsAHVCRfzvZBjrvEcVM

    Joined:
    Jul 11, 2022
    Posts:
    2
    Hi, BlackMat, Thanks for your GREAT WORK! I am using your plugin to develop an Isometric view game. And I have a question that I'd like you to help to explain. In scene01 of examples. The IsoWorld script. The 'Tile Size' property set to be 0.65. How do you calculate this value? Could you explain the formula. Thx a lot!
     
  23. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello! Here you can find all tiles dimensions with comments: https://github.com/BlackMATov/unity-iso-tools/blob/main/Assets/IsoTools/Docs/API.md
     
  24. wechat_os_Qy0-PfPsAHVCRfzvZBjrvEcVM

    wechat_os_Qy0-PfPsAHVCRfzvZBjrvEcVM

    Joined:
    Jul 11, 2022
    Posts:
    2
    BlackMat likes this.