Search Unity

Isometric 2.5D Toolset

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

  1. destapp

    destapp

    Joined:
    Oct 22, 2012
    Posts:
    18
    hi , i'm trying to add trigger event using OnTriggerEnter2D(Collider2D) and its not working.. do you have any idea how to implement this?
     
  2. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi, desta!
    Use isometric analog for trigger event (like physics sample and IsoEchoListener.cs for tests).
    Code (CSharp):
    1. void OnIsoTriggerEnter(IsoCollider)
     
  3. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Deus Craft uses my plugin for their new isometric game (WIP)

     
  4. destapp

    destapp

    Joined:
    Oct 22, 2012
    Posts:
    18
    hi blackmat, i want to ask about IsoRayCastHit.. i want to add script like detect tile collider by clicking mouse using raycast like this :

    Code (CSharp):
    1. IsoRaycastHit hit ;
    2.             Ray ray = cam.ScreenPointToRay(iso_world.MouseIsoPosition(cam));
    3.             if(Physics.Raycast(ray, out hit)){
    4.                 if (hit.collider != null){
    5.                     Debug.Log(hit.collider.gameObject.name);
    6.                 }
    7.             }
    but i got some errors "The best overloaded method match for `UnityEngine.Physics.Raycast(UnityEngine.Ray, float)' has some invalid arguments" and "Argument `#2' does not require `out' modifier. Consider removing `out' modifier" .
    is there any class IsoPhysics for replace Physics.raycast?? could you give a simple code for touch/click?

    thank you
     
  5. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi desta. I will try to implement it (Physics.RaycastAll for isometric), but it's hard because physics and iso-sprites are in different projections.

    Because Unity not have this function.

    Also
    IsoWorld.MouseIsoTilePosition() return coordinates of tile behind mouse, it's can help you.
     
  6. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    345
    What if I want multiple sprites on the same tile?
    Does this plugin support that?

    ie: tile needs to have ground sprite and tree sprite. Is it possible?
     
  7. ausiemick

    ausiemick

    Joined:
    Oct 8, 2012
    Posts:
    20
    Just wondeing if the physics supports weird structures like so:



    I did read through most of the posts but I might have skimmed over somthing :| I'm good at that, so if thats the case I'm sorry

    Thanks.
     
  8. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Of Course it's possible. Look at Examples :)
     
  9. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    It's very hard situation for pseudo-3d, because isometric sorting will break on not rectangular objects
     
  10. ausiemick

    ausiemick

    Joined:
    Oct 8, 2012
    Posts:
    20
    Thanks, baught it. Still new-ish to unity, I've opened the first demo scene and I'm trying to figure out the camera (i.e. zoom) and I can't seem to find it, it feels like the camera is diferent somehow (maybe your script) how would I zoom in/out w/o ruining your iso-look?

    Edit: change the camera size to achieve this
     
    Last edited: Nov 28, 2015
  11. ausiemick

    ausiemick

    Joined:
    Oct 8, 2012
    Posts:
    20
    I'm having issues where the scene view doesn't match the Game view when I pan my Scene view camera as I look around. Blocks start to be infront of others when theyre not supposed to be. Why? Also I can't seem to get rid of black lines coming into my connections between blocks. I've tried removing all semi-transparent pixels and also set the sprite filtering mode to be pixel. How can I tile without the black lines? is it all to do with the binding boxes? Thanks



    EDIT:
    Also when I try fine-tuning my bounds boxes I notice that they don't align line on line. Does this mean that the snapping isn't to do with these boxes? If so how do I change snapping? do I just have to re-size assets to snap on the lines i need them to? Thanks
     
    Last edited: Nov 29, 2015
  12. ausiemick

    ausiemick

    Joined:
    Oct 8, 2012
    Posts:
    20
    I am able to remove the black lines (dark side of next tile) but only through fiddling with the iso world to make the tile size 30.9 rather than 32. Is this a good idea or bad? (I also had to make the red bounding box basically be the inner white part of the tile, none of the other sides on it) but this causes allignment issues. Do I just have to live with the lines, or is there a proper way to do this?



    and here's a better attempt where I aim to have the Y shape EXACTLY in line and have the ^ containing overflow to hide the shade side

     
    Last edited: Nov 29, 2015
  13. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Emmmmm. What are you doing? :) Enable 2d view :) Look at samples. Look Unity tutorials.
     
  14. MOSTY

    MOSTY

    Joined:
    Sep 6, 2013
    Posts:
    266
    Its a very intuitive asset and i am glad that i found it. Thanks for the work! Awesome support also! Regards
     
  15. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Thank you MOSTY! :)
     
  16. ausiemick

    ausiemick

    Joined:
    Oct 8, 2012
    Posts:
    20
    My main usage of unity was 3 years ago in UNI when Unity only did 3D. I will look into enable 2D view, theres a good chance that's the issue.

    Do you or could you write any documentation on tips for positioning the bounding boxes for the tiles? I think i've got it sorted now, but a look into your tricks to make kenney's iso blocks look good would be appreciated.

    Other than that, I was wondering if you could tell me how the snapping system works! I've found the only way I can get my tiles to snap is if I only use whole numbers for my iso object size.

    Thanks
     
  17. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    345
    Very tempting with the sale.. but just wondering how this one compares with the "OTHER" toolkit thats on the market? Any comments?
     
  18. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269

    Step by step simple video tutorial.

    Snapping work only by tile size and when alignment checkbox is enabled. I want make other snapping system, but not done yet.
     
  19. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Asset store have no any assets with this asset features.
     
  20. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    345
    Which features specifically?
     
  21. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Features are described in the description section of the asset page.
     
  22. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    345
    You said there is none in the store that have your features and I am wondering which ones specifically.. There are other isometric libraries on the store that does the same thing.
     
  23. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    >Isometric Toolkit<
    Not 2D isometric plugin. It is simple camera settings for 3d view.

    >Easy Isometric Sorting<
    Not isometric plugin, because it sorting objects only one axis. (it's good for old jrpg-style game, but not anymore)

    >Ultimate Isometric Toolkit<
    Many free kenney's art, but have no needed functionals:
    • no sorting multiple-tiles size without slicing sprites (for example objects 8x1x1 and 1x1x1)
    • no Undo/Redo for editor(!)
    • no physics event for isometric coords and isometric world
    • no custom isometric settings (like this)
    • no mix 2D and 3D support
    I hope I answered your question.
     
  24. florianPRN

    florianPRN

    Joined:
    May 13, 2014
    Posts:
    2
    Hello,
    I just purchased your product and I wanted to check the Mouse Position. In 2D or 3D World, I simply use OnMouseEnter/Over/Exit/Down/Up but with IsoBoxCollider the events are not triggered.
    Is it a bug ?
     
  25. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello florianPRN, thank you!
    No, it's not bug because IsoBoxCollider is used for iso-physics only.
    You may use unity 2d colliders as usual for mouse triggers.
     
  26. sidartha138

    sidartha138

    Joined:
    Jan 25, 2015
    Posts:
    4
    Hello, I just purchased the asset and have a question. Do you have any suggestions on adding a shadow to a character when he jumps?

    The shadow can't be part of the same sprite as it needs to stay on the ground when he jumps, in order to show depth.

    Thank you.
     
    Last edited: Dec 14, 2015
  27. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello sidartha138. You can make simple IsoObject of shadow with zero-height and set position for it under your character. Or attach shadow to tile without isometric like a simple sprite.
     
  28. sidartha138

    sidartha138

    Joined:
    Jan 25, 2015
    Posts:
    4
    The IsoObject with shadow gets me much closer, but I do have one more question.
    See picture below:

    Let's say I am on square "1" with the shadow at 0, then I jump up to square "2", is there an easy way to tell the shadow to move to the top of square "2" instead of staying a 0?

    Basically, these risers are random so I am looking for a way to see "what is the position of the top square" each time I land on it, so that I can put the shadow at that level?

    Is this possible?

     
  29. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    You can have structure of your landscape for your game. Hero.tilePosition give you hero tile position. Landscape must be know height in specific tile position and top tile there. After this you can change shadow position for example.
     
  30. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    PlayMaker support. Work in progress...
     
  31. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Version 2.2
    - PlayMaker support
     
  32. Woodecker

    Woodecker

    Joined:
    Oct 19, 2012
    Posts:
    1
    Would be awesome to import maps from Tiled level editor.
     
  33. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    I'm working on it now :)
     
  34. Drabuna

    Drabuna

    Joined:
    Feb 3, 2016
    Posts:
    1
    It seems like a really nice plugin to use, but before buying I would like to ask some questions:
    -how big of a map is it able to handle, any limits? Like 1000x1000 tiles?
    -can I dynamically generate map and place tiles?
    -performance on mobile mid-range mobile devices for large maps?
     
  35. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello Drabuna!
    > -how big of a map is it able to handle, any limits? Like 1000x1000 tiles?
    On 1'000'000 you must need use chunk or other techniques, because it's too much. Or wait for Tiled support.

    > -can I dynamically generate map and place tiles?
    Yes, you can.

    > -performance on mobile mid-range mobile devices for large maps?
    I am constantly working to improve performance. And current performance is good.
     
  36. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
  37. YOOJANGSEON

    YOOJANGSEON

    Joined:
    Feb 26, 2016
    Posts:
    1
    I'm found OOM in Android
    at IsoTools.Internal.IsoList`1[IsoTools.IsoWorld+Sector].se t_Capacity (Int32 value) [0x00000] in <filename unknown>:0

    void SetupSectors() {
    ResizeSectors(Mathf.FloorToInt(_sectorsNumPosCount.x * _sectorsNumPosCount.y));
    TuneSectors();
    }

    REPLACE

    void SetupSectors() {
    ResizeSectors(Mathf.Clamp((Mathf.FloorToInt(_sectorsNumPosCount.x * _sectorsNumPosCount.y)), 0, int.MaxValue));
    TuneSectors();
    }


    void ResizeSectors(int count) {
    if ( _sectors.Count < count ) {
    if ( _sectors.Capacity < count ) {
    _sectors.Capacity = count;
    }
    while ( _sectors.Count < _sectors.Capacity ) {
    _sectors.Push(new Sector());
    }
    }
    for ( int i = 0, e = _sectors.Count; i < e; ++i ) {
    _sectors.Reset();
    }
    }


    REPLACE
    void ResizeSectors(int count) {
    if (count >= int.MaxValue)
    {
    print("int maxvalue");
    return;
    }

    if ( _sectors.Count < count ) {
    if ( _sectors.Capacity < count ) {
    _sectors.Capacity = count;
    }
    while ( _sectors.Count < _sectors.Capacity ) {
    _sectors.Push(new Sector());
    }
    }
    for ( int i = 0, e = _sectors.Count; i < e; ++i ) {
    _sectors.Reset();
    }
    }


    i just wanted to fix next update :)
     
  38. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Thank you for report :) But...How you did this? :)
     
  39. fayte0618

    fayte0618

    Joined:
    Dec 4, 2013
    Posts:
    9
    Hi! I would like to request if you can please change the collider to use the 2D ones instead of the 3D ones for optimization?
     
  40. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello! Isometric world have three dimensions because it's 3d world (mathematically) :)
     
  41. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    Hi,

    I have a problem with sample when I import plugin in my project



    But when I import it in a new project, no problem.

    An idea ?

    Thks
     
  42. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi, I not see the problem :) Screenshot is too small
     
  43. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    Arf, indeed bad link ^^.
    For more informations, it's exemple scene 00




    Here a screen of scene 03 :



    Again, I have no problem with a new project so I do something wrong but what ....

    Thks
     
  44. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    You have problem because IsoWorld have other settings (tile size for example), check IsoWorld settings.
     
  45. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    You are right.
    But I have a strange behavior from Unity if I import plugin from asset store directly in my project, prefab and scene have strange parameters ( I remove and reimport 3 times to be sure). But if I paste files plugin from a empty project it works.

    So problem solve but strange bug from Unity
    :confused:
     
  46. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    Hi,

    So I have begin to implement your plugin in my project and I have two request :

    • Can we have a offset parameters in isoObject because add child to GO which have isoObject is a loss of performance. And for logic, the isoObject have to fill sprite and not the opposite. What do you think ?
    • I have detect a big loss of performance in the system. For 1700 tiles it's take 4ms for because of his logic. I have detect IsoWorld each frame ask for each isoobject to give all his renderer and check if one of this is render is visible. Why isoobject not manage his renderer ( and assume user says to isoObject he add or remove a renderer after Start call). maybe with a system of delegate. In Start, isoObject gets his renderers and adds to these renderers a script which call him when visibility change. IsoObject always known number of renderer visible or not and when isoWorld ask "Are you visible ?" isoObject answers _visibleRenderer > 0. With that system you avoid many getcomponent and for loop each frame. What do you think ?
    The good thing is I correct a bug in my old tile placement I have not detect before :)
     
  47. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    > Can we have a offset parameters in isoObject because add child to GO which have isoObject is a loss of performance. And for logic, the isoObject have to fill sprite and not the opposite. What do you think ?

    Do not add isoobject to isoobject as child. Use simple hierarchy like:
    IsoObject
    - Sprite
    - Sprite

    > I have detect a big loss of performance in the system. For 1700 tiles it's take 4ms for because of his logic.

    I think you not need 1700 tiles :) You can use one and more "chunk" IsoObject for floor or use new Tiled functionality where all tiles in chunk converting to one mesh.

    > Why isoobject not manage his renderer

    Because i'll need update function in every isoobject in this variant. (update function to cut from code on build now).

    > and assume user says to isoObject he add or remove a renderer after Start call
    number of children changes on life time and more, more, more problem and trick )
     
  48. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    I don't want do
    IsoObject
    - IsoObject

    I want do
    IsoObject - Sprite ( same level)

    Because ( methods are prety the same) I can set pivot point where I want without add GO than Unity don't managed well. And vector2+Vector2 is more efficient than move GO and his children or active/desactive many GOs.
    I think your method is good for several sprites

    I am at the beginning of my project so it's planned. :)
    But I recreate a city builder sierra like so I will have a huge sprite count and every ms is important.

    What do you mean ? feature of Unity or yours ? I am curious ^^
    If it is yours, I can not use it because my map are dynamically create or it's my players who design it in runtime.
    Do you planned a rudimentary runtime TileMap ?

    But IsoObject is one object ( with many renderers) so in majority of cases renderer count will be fixed at Start. You don't thinks ?

    Thanks for your answers and sorry for my bad English :)
     
    Last edited: Mar 5, 2016
  49. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    You can made chunk map for many sprites, like this:
    - IsoObject (parent) (chunk, for example 10x10x0 size)
    -- Tile Sprite (child)
    -- Tile Sprite (child)
    -- Tile Sprite (child)
    -- ...
    Because you don't need IsoObject for every tile for perfomance.

    My implementation for static tile map yet :(

    Yes you are right. But I try support all cases :) I'll thinking about it!
     
  50. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    Ok thks I will try to mix your plugin with 2dToolkit for tilemap and see what's happen :)

    Do you have a roadmap for future features ?