Search Unity

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
    Hello antonincharrier!

    Use isometric analogs for collision functions:
    • void OnIsoTriggerEnter (IsoCollider iso_collider)
    • void OnIsoTriggerExit (IsoCollider iso_collider)
    • void OnIsoCollisionEnter (IsoCollision iso_collision)
    • void OnIsoCollisionExit (IsoCollision iso_collision)
    Note! For listen trigger events you should add IsoTriggerListener for your IsoObject and IsoCollisionListener for listen collision events.
     
  2. antonincharrier

    antonincharrier

    Joined:
    May 22, 2016
    Posts:
    4
    Thanks a lot it works perfectly!
     
  3. chroniclers

    chroniclers

    Joined:
    Jun 25, 2016
    Posts:
    5
    Hello blackmat,

    I'm having some problem using tiled as an external editor and importing into unity.

    using unity 5.3.5...
    In tiled, tiles are aligned correctly with cells while when importing unity(enabling show grid in generated iso object) seems that tiles are displaced. Tipically, the center of the tile is at the intersection between 2 tiles with some kind of offset...

    I'm uploading the images and the tiled prooject...


    Thanks in advance.

    I've checked the example project and it's rendered correctly...
     

    Attached Files:

    Last edited: Jun 25, 2016
  4. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    chroniclers, thank you for report! It's my mistake :(
    Fix in attach.
     

    Attached Files:

  5. chroniclers

    chroniclers

    Joined:
    Jun 25, 2016
    Posts:
    5
    thanks. Working good. Out of curiosity, what was the problem in postProcessor ?
     
  6. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Incorrect tile offset by Y, you can look diff with old file and new :)
     
  7. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    Any news features under dev ? :)
     
  8. fayte0618

    fayte0618

    Joined:
    Dec 4, 2013
    Posts:
    9
    Hi! I have a problem running your plugin in IOS. Specifically it gives me a GC error in your ISOWorld script. Do you know any fix about that?
     
  9. chroniclers

    chroniclers

    Joined:
    Jun 25, 2016
    Posts:
    5
    hi Blackmat,

    we have some isoObject that are disabled when starting the scene...

    Problem is that when they are enabled later in the scene due to some events, they don't respect z-index coordinate.
    Is there a method to refresh z-handling of IsoWorld to call when enabling this object ?

    Naturally, when all components are enabled from the start, z-index works nicely...

    Images are attached of behaviour when object is enabled from the start and when enabled later in the scene.

    Thanks in advance
     

    Attached Files:

  10. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi chroniclers!
    Sorry for the delayed response :( I tried your error case, but I can't do it. Can you send me minimal unity project with the error? I'll debug it and fix :)
     
  11. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    Hi @blackmat

    I think I have found a bug in sorting order in lastest version.
    I have my ground with settings
    TileMapSettings.PNG

    I have a building with settings
    BuildingSettings.PNG

    And that create this visual bug

    bug.gif


    Do you have an idea ?
     
  12. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hm... no... %) Send me please minimal unity project with bug and I'll fix it for you :)
     
  13. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    I send you a message with project :)
     
  14. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    I looked at your project. Simple up "Step Depth" value to 0.05 because for your scale value 0.01 too small.
     
  15. Sylmerria

    Sylmerria

    Joined:
    Jul 2, 2012
    Posts:
    369
    Oh that so stupid ! big thanks :)
     
  16. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    You are welcome :)
     
  17. maggigyo

    maggigyo

    Joined:
    Sep 7, 2016
    Posts:
    1
    Hi!
    First of all, I'm pretty much a noob, and have serious problems understanding the scripts because of the lack of documentation.

    I'm wondering how use the snapping functionality in-game, during runtime.
    We are creating a strategy game for mobile.
    The snapping stuff seems to be in the editor assembly, in the IsoObjectEditor, am I right?
    I've tried just copying the script into the correct assembly, removing editor-specific stuff as much as I can. But I get stuck on a lot of errors, so this easy noob solution probably doesn't work.

    A little help on the way, please?
    Thank you in advance.
     
  18. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi! Snapping is editor feature only. You should write your snapping system for your map and game, and your drag system and requirements :) Adapt editor snapping is wrong way :)
     
  19. DannRees

    DannRees

    Joined:
    Jan 8, 2013
    Posts:
    3
    Hi Blackmat,

    I recently purchased your toolkit. Great work!

    I was wondering if you could help with something. How would I implement steps/slopes with your toolkit. Such as the ones in Hyperlight Drifter and Eitr (images below)

    I want the player to automatically walk up them (without jumping). Also my Isometric is the "45 degree perspective"

    Many thanks

     
    Last edited: Sep 12, 2016
  20. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi DannRees! Thank you! You can make heightmap for your floor and attach floor sprite to it (not isometric) and setup transform Z coord lower than other iso objects. Every move player resetup his IsoZ coord by heightmap :)
     
  21. DannRees

    DannRees

    Joined:
    Jan 8, 2013
    Posts:
    3
    Thanks for your prompt reply Blackmat. I really appreciate your help but I'm afraid I don't understand what you mean. Could you possibly breakdown the process for me (or an example scene would be amazing). Is this built-in functionality to your toolkit?

    Thanks again
     
  22. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    No, this functionality is not present in the plugin. Because it is very specific to the game.
    The main idea to paint the background (stairs, timemap and etc) as not isometric object, always behind isometric objects. And get isometric Z coordinate information from heightmap for players and NPC.
     
  23. Braza

    Braza

    Joined:
    Oct 11, 2013
    Posts:
    136
    Hey!

    I have problem with physics and partucularily with floor for some reason. Floor tiles are kinematic with iso box collider.

    Cubes are not kinematic and use gravity. I've brought them a bit above the ground so that they could fall.

    They interact with each other correctly, although the fall through floor one half deep...
     
  24. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi Braza!
    I think that some collider or objects have incorrect settings. Did you looked physics video tutorial? If it's not help you then you can send me minimal project with "bug" and I'll fix it problem.
     
  25. Faolz

    Faolz

    Joined:
    Jan 6, 2016
    Posts:
    1
    Hey there,

    Just got the asset today and I've noticed that some tiles turn into the background color.

    There anyway to fix this?



    After a bit more research I'm assuming this is due to too many tiles and the fact that I probably need a chunk system. I'm going to look into that more but if anyone has any references to share... Cheers!
     
    Last edited: Oct 10, 2016
  26. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi Faolz! You can use tiled map import for tiles floor. Or simple setup IsoWorld ''Step depth" and "Start depth" for your camera clipping planes (Near, Far).
     
  27. Braza

    Braza

    Joined:
    Oct 11, 2013
    Posts:
    136
    I found out that issue was due to bounds being wrongly drawn if Iso scripts are attached directly to the sprite so it looked like they're eligned. Attaching sprite under separate empty object that has the scripts allowed me to see the misalignment of sprite and bounds.
     
  28. Chris_McG

    Chris_McG

    Joined:
    Nov 2, 2016
    Posts:
    1
    I have a question. We have used your Isotools and it works great for PC. But we are also building for playstation and we are running into problems. Mainly that PS4 uses AOT to compile so it does not like some of the Dictionary stuff. I am still new to developing for PS4 or probably would have noticed earlier.

    Have you guys looked into supporting the AOT compiler or have any work around that I might be able to utilize?
     
  29. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hello Chris_McG! Just use IL2CPP for Scripting Backend instead Mono.
     
  30. BlackMat

    BlackMat

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

    domjon

    Joined:
    Oct 14, 2012
    Posts:
    12
    Just missed the sale but this asset was worth every dollar, thank you for the amazing work blackmat!

    Question:
    I'm using RayFromIsoCameraToIsoPoint and getting back a _Fakegameobject, how can I access the real gameobject's IsoObject script from RaycastHit? Thanks!

    EDIT: I see the transform.position from the _Fake is the actual Iso coords, perfect! But if I needed to still get back the real gameobject how would I do that from the _Fake? Thanks!
     
  32. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Thank you domjon! Use 'Ray' from 'RayFromIsoCameraToIsoPoint' for IsoWorld.Raycast function (not Unity Physics.Raycast) and you will get special 'IsoRaycastHit' with real IsoObject :)
     
    domjon likes this.
  33. domjon

    domjon

    Joined:
    Oct 14, 2012
    Posts:
    12
    I solved the rigidbody stairs problem with a custom IsoMeshCollider script, and attaching a 1x1 ramp-like mesh created in Blender/ProBuilder. Works like a charm! Just be careful about matching IsoObject sizing, or I'm assuming the draw orders will mess up.



    Here's the C# script:
    Code (CSharp):
    1. using UnityEngine;
    2. using IsoTools.Internal;
    3.  
    4. #if UNITY_EDITOR
    5. using UnityEditor;
    6. #endif
    7.  
    8. namespace IsoTools {
    9.     [RequireComponent(typeof(IsoObject))]
    10.     public class IsoMeshCollider : IsoCollider {
    11.      
    12.         public Mesh mesh;
    13.      
    14.         protected override Collider CreateRealCollider(GameObject target) {
    15.             var collider    = target.AddComponent<MeshCollider>();
    16.             collider.sharedMesh = mesh;
    17.             return collider;
    18.         }
    19.      
    20.         public MeshCollider realMeshCollider {
    21.             get { return realCollider as MeshCollider; }
    22.         }
    23.      
    24.     #if UNITY_EDITOR
    25.         protected override void Reset() {
    26.             base.Reset();
    27.             EditorUtility.SetDirty(this);
    28.         }
    29.      
    30.         protected override void OnValidate() {
    31.             base.OnValidate();
    32.             if ( realMeshCollider ) {
    33.                 realMeshCollider.sharedMesh = mesh;
    34.             }
    35.         }
    36.      
    37.         void OnDrawGizmosSelected() {
    38.             var iso_object = GetComponent<IsoObject>();
    39.             if ( iso_object && iso_object.isoWorld )
    40.             {
    41.                 Handles.color = Color.green;
    42.              
    43.                 IsoWorld iso_world = iso_object.isoWorld;
    44.                 Vector3[] vertices = mesh.vertices;
    45.                 for(int i=1; i < vertices.Length; i++)
    46.                 {
    47.                     Handles.DrawLine(transform.TransformPoint(iso_world.IsoToScreen(vertices[i-1])),
    48.                         transform.TransformPoint(iso_world.IsoToScreen(vertices[i])));
    49.                 }
    50.             }
    51.         }
    52.     #endif
    53.  
    54.     }
    55. }
    56.  
     
  34. invadererik

    invadererik

    Joined:
    Oct 31, 2010
    Posts:
    148
    so I guess I'm feeling pretty stupid, but how do I build the collision for this platform shape so the player is able to fall on all edges and be able to step onto the platform part smoothly ? currently I have one box for the 4x3 area and another box for the platform and the player occasionaly gets stuck at the border of the two.

    iso_issue.JPG
     
  35. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Hi! You can use capsule collider for example. Or sphere collider for legs player. It's classical problem 3d physics engines, yes)
     
  36. mayakorinalee

    mayakorinalee

    Joined:
    Dec 9, 2016
    Posts:
    1
    Hello! I have some issues with PlayMaker (1.8.3) :
    I tried to make a FSM in a cube that would activate an event if the Player01's collider would collides with the cube's, but nothing is happening.

    Player01 and Cube's Colliders :


    PlayMaker Editor with the scene :


    I also tried to put an Iso FSM Events component in the player and/or in the cube, but nothing happened too, a logic error shows in my log.

    Inspector (Player01) : https://puu.sh/sJrq2/73df7969bd.png
    Inspector (Tapistest) : https://puu.sh/sJrwu/981641091e.png

    Console :
     
  37. invadererik

    invadererik

    Joined:
    Oct 31, 2010
    Posts:
    148
    Thanks for the tip ! It does work better ( I'm using the sphere collider currently) . It does still get slightly stuck in the border, but its better than the cube. Any other tip to help ?
     
  38. invadererik

    invadererik

    Joined:
    Oct 31, 2010
    Posts:
    148
    How were you able to create the mesh to match the iso space? I tried doing this with pro builder but I couldn't figure out how to get the collider to correctly match the Iso world. Any tips on how you achieved this? Could you maybe share your collider mesh to see how off I am from yours?

    Thanks !
     
  39. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    You get an error because manually add IsoFSMEvents component. Do not do this :)

    Add IsoCollisionListener to "Tapistest" object. I think it will resolve your issue! :)
     
  40. invadererik

    invadererik

    Joined:
    Oct 31, 2010
    Posts:
    148
    Two things:

    a) would be great if you could add a toggle on the snapping in the IsoObject maybe or just a floating window with a global toggle. In my current scene I have a lot of objects I want to place with out snapping and its a pain to move them and then have to slide the property in the editor. Maybe there is a shortcut I missed ?

    b) I get this warning in builds :
    [Unity] Assets/IsoTools/Scripts/IsoRigidbody.cs(138,47): warning CS0618: `UnityEngine.Rigidbody.useConeFriction' is obsolete: `Cone friction is no longer supported.'
     
  41. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    a) Press and hold "Control" key for disable snapping when moving objects.
    b) All warning will be fixed in new version of plugin. (New versions of Unity makes new warning every version :))
     
  42. invadererik

    invadererik

    Joined:
    Oct 31, 2010
    Posts:
    148
    Thank you! This is perfect.
     
  43. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Multiple different "isometric" worlds in one scene. Work in progress.
     
    invadererik and Sylmerria like this.
  44. invadererik

    invadererik

    Joined:
    Oct 31, 2010
    Posts:
    148
    I'm trying to make a character that has several parts, how would I get these to sort correctly ? Currently only one piece of the character seems to be sorting correctly behind objects in the world. Any ideas? Should I use 1 IsoObject or several ? How do I deal with the character layers ? should I use layer order ? or make many sub IsoObjects parented in a hierarchy ? Or is this a limitation and I should try to merge my character into one sprite ?
     
  45. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    One IsoObject for character and several sprites as children. For children you can use transform Z for sorting like layers. (But use should set sorting mode for IsoObject to 3d) Look at houses in examples. They are made by this technology.
     
  46. invadererik

    invadererik

    Joined:
    Oct 31, 2010
    Posts:
    148
    Lol I guess I should have looked at the examples more carefully. @blackmat thanks so much it's working well now.
     
  47. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    No problem. You are welcome! :)
     
  48. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    Fun with optimizations and Isometric 2.5D Toolset! :)
    [GIF]
     
  49. invadererik

    invadererik

    Joined:
    Oct 31, 2010
    Posts:
    148
    No idea what that gif is showing
     
  50. BlackMat

    BlackMat

    Joined:
    Jan 8, 2015
    Posts:
    269
    It's debug visualization for improvement sorting algorithm :)
     
    invadererik likes this.