Search Unity

[RELEASED] Super Tilemap Editor

Discussion in 'Assets and Asset Store' started by CreativeSpore, Feb 21, 2016.

  1. FrankBuss

    FrankBuss

    Joined:
    Dec 22, 2014
    Posts:
    41
    BTW, currently I'm porting my code I started with the Unity 2D preview Tilemap classes. It is not as powerful or stable as your system for rectangular tilemaps, but the Vector3Int class was nice to encapsulate a grid position. I don't know why they are using 3 components, a Vector2Int would be sufficient, maybe they were planning to enhance the system to a 3D Tilemap. Such a position class would make your last code simpler and I can't think of any reason why you would need GetMouseGridX, only, and not GetMouseGridY, so GetMouseGrid could return a GridPostion or so object, with an int x and int y field. Could be even backward compatible, if you leave the GetMouseGridX/Y methods in and mark them just as deprecated.
     
  2. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    Thanks for telling me about this. I will add some extra checks for the parameters when slicing the tileset.
     
  3. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    I didn't add a Vector2Int because I didn't want to create ambiguity with Unity clases in the future. Also, it would be useful only in some cases. I almost prefer to create the GetMouseGrid returning a Vector2 instead.
     
  4. years1hundred

    years1hundred

    Joined:
    Sep 3, 2016
    Posts:
    7
    Hey! I just have a quick question - as it is, I just purchased STME, and I'm really loving its flexibility! Currently, I have the cells set at the default 1x1, but those are proving to be too clunky for me to create more intricate designs. So I changed it to 0.5x0.5, but then it shrunk the sprites accordingly. Would there be a way for me to maintain the 1x1 sprite size ratio, but then put tiles in 0.5x0.5 grids so that I have more control?

    Thanks!
     
  5. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    I guess you mean with sprites the prefabs attached to a tile. Right now the prefabs will be instantiated using the scale set in the prefab, so to maintain the same size ratio, the cell size should be set to (Tileset.TilePxSize / Tileset.PixelsPerUnit), so if you have tiles of 16x16 pixels and a pixelsPerUnit set to 100, then the cell size should be (0.16,0.16).
    Now the sprite (the texture should be set with the same pixelsPerUnit) will be instantiated with the same pixel size ratio.
    And then you can scale the tilemap to make it bigger or smaller instead of changing the cell size.
    Anyway I think it would be useful to add an option in the tile prefabs object to set the scale based on the pixel size of the tiles. I will probably add this option in the next release.
     
  6. FrankBuss

    FrankBuss

    Joined:
    Dec 22, 2014
    Posts:
    41
    This would work, too. I don't like floats for integer values, but shouldn't cause any problems if I'm careful when I do math operations with it.
     
  7. thomas-waldick

    thomas-waldick

    Joined:
    Jul 14, 2015
    Posts:
    19
    I have a question and wasn't sure how to go about doing it. How would I make like an in game level editor using STME?
     
  8. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    Hi there,

    You can do this in many ways, but I can give you these tips:
    • To access the tile uvs you can use: Tileset.Tiles[idx].uv
    • To draw the brush, use: Tileset.Brushes[idx].BrushAsset.GetAnimUV() (this works also for no animated brushes)
    • To know the tilemap position the mouse is over:
    int gridX = TilemapUtils.GetMouseGridX(tilemap, Camera.main);
    int gridY = TilemapUtils.GetMouseGridY(tilemap, Camera.main);

    • To set a tile at certain grid position: tilemap.SetTileData(gridX, gridY, tileId)
    • To set a tile at world position: tilemap.SetTileData(worldPosition, tileId)
    Remember to call tilemap.UpdateMesh() to refresh the changes made.

    If you need more help with something specific, don't hesitate to ask.
     
  9. skycc

    skycc

    Joined:
    Oct 1, 2010
    Posts:
    11
    i'm using unity5.4.1,win10
    the samples doesn't work perfect
    QQ截图20161102225331.png
     
  10. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    238
    I can no longer refresh the map during runtime, getting errors!

    unity 5.3.4 using 1.4 editor

    Code (csharp):
    1.  
    2. Not allowed to access vertices on mesh 'Combined Mesh (root: scene)'
    3. UnityEngine.Mesh:set_vertices(Vector3[])
    4. CreativeSpore.SuperTilemapEditor.TilemapChunk:UpdateMesh() (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/TilemapChunk_Renderer.cs:91)
    5. CreativeSpore.SuperTilemapEditor.Tilemap:UpdateMeshImmediate() (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Tilemap.cs:712)
    6. CreativeSpore.SuperTilemapEditor.Tilemap:Update() (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Tilemap.cs:355)
    7. [code]
     
  11. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    I've been making some research about the Binary to YAML conversion error, and it looks like a problem when importing an asset with serialization mode set to Force Text. Changing it to Mixed before importing the asset w
    I've been making some research about the Binary to YAML conversion error, and it looks like a problem when importing an asset with serialization mode set to Force Text. Changing it to Mixed before importing the asset should fix the issue.
    upload_2016-11-2_18-1-13.png
     
  12. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    Did you mark the tilemap static check box? If it's unchecked, check and uncheck againa and reply yes to the confirmation dialog about changing children as well.
     
  13. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    238
    Oops. That was it! Thanks.
     
  14. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    You are welcome ;)
     
  15. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    238
    Is there a way to make the Z scale value 1 instead of 0 for tile prefabs?
    I am adding a prefab to the tile which contains a light, but because the Z scale value is 0, the light is not shown correctly.
     
  16. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    I have fixed that bug in the next update (currently being validated by Unity).
    It fixed changing Vector2 to Vector3 in this line:
    upload_2016-11-2_20-34-40.png
     
  17. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    238
    Awesome! Ill modify mine
     
  18. hexdump

    hexdump

    Joined:
    Dec 29, 2008
    Posts:
    439
    Is there any possibility to a run a tile aniamtion when needed? It seems that when you add an animated tile to the tilemap it starts animation when scene is launch and never stop. I need a way to be able to start animations for a certain tile at a given time. For example to create breakable blocks that break when player passes above them.

    Cheers.
     
  19. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    For performance reasons, all animated tiles are updated at the same time.
    To create breakable blocks when player is over them you can create a prefab object, attaching the TileObjBehaviour script to replicate the tile sprite where it is attached, and make the logic to detect the player and play the animation inside this prefab.
     
  20. Cypras

    Cypras

    Joined:
    Oct 25, 2013
    Posts:
    52
    Tileset appearing black after using custom shader.


    Code (CSharp):
    1.         Shader "Custom/ScreenPos"
    2.         {
    3.            Properties
    4.            {
    5.                _MainTex ("Texture", 2D) = "white" {}
    6.                _Detail ("Detail", 2D) = "gray" {}
    7.                _X ("X Tile", Float) = 8
    8.                _Y ("Y Tile", Float) = 8
    9.            }
    10.      
    11.            SubShader
    12.            {
    13.            Tags {"Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent"}
    14.            Cull Off
    15.                CGPROGRAM
    16.                #pragma surface surf Lambert alpha:fade
    17.      
    18.                    struct Input
    19.                    {
    20.                        float2 uv_MainTex;
    21.                        float3 worldPos;
    22.                    };
    23.      
    24.                    sampler2D     _MainTex;
    25.                    sampler2D     _Detail;
    26.                    float        _X;
    27.                    float        _Y;
    28.      
    29.                    void surf (Input IN, inout SurfaceOutput o)
    30.                    {
    31.                        half4 c =  tex2D (_MainTex, IN.uv_MainTex);
    32.                        o.Albedo = c.rgb;
    33.                        IN.worldPos.xy *= float2(_X,_Y);
    34.                        o.Albedo *= tex2D (_Detail, IN.worldPos.xy).rgb * 2;
    35.                        o.Alpha = c.a;
    36.                    }
    37.                ENDCG
    38.            }
    39.            Fallback "Diffuse"
    40.          }
    Any ideas why?
     
  21. thomas-waldick

    thomas-waldick

    Joined:
    Jul 14, 2015
    Posts:
    19
    How can I access individual sprite renderers on a tilemap?
     
  22. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    You need a light in the scene if you are using that shader.
     
  23. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    The tiles are rendererd using a mesh for each chunk of tiles for performance reasons, so you cannot access the renderer directly.
    But you can create a tile using a SpriteRenderer if you attach a prefab to the tile with the script TileObjBehaviour.
    I have also created other version using a Mesh Quad for next version. I have attached the scripts in case you prefer to use a Quad.
     

    Attached Files:

  24. thomas-waldick

    thomas-waldick

    Joined:
    Jul 14, 2015
    Posts:
    19
    I'm confused on what you mean. I tried your suggestion but it didn't seem to work :/
    I made a prefab from a sprite and attached the TileObjBehavior Script but nothing really happened
     
    Last edited: Nov 7, 2016
  25. emongev

    emongev

    Joined:
    Jul 5, 2012
    Posts:
    29
    Has this been added? I was trying to do just this but i couldnt find the option.

    Also how would i go about having a single carpet brush that can also handle straight lines similar to what the road brush does? or having the road brush handle internal corners correctly?

    I tried checking the code, but i wasnt able to understand the code that easily, specially the road brush one :/
     
  26. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    You have to attach the prefab to a tile. When you pain the tile, the prefab will be instantiated and the sprite will be the same as the tile used to instantiate it. This way you can access the sprite renderer of a tile.
    But what I was explaining was, technically this is not the tile, the tile is hidden because you have attached a prefab to it and the option Show Tile With Prefab is unchecked (by default). So the prefab is not a tile, but a gameObject with a sprite renderer rendering with a sprite looking like the tile used to create it. This is affecting you in the way that it's less efficient to create a game object per each tile, so it is useful only when you use this for special tiles, like damage tiles (spikes, lava, etc), doors, chest, etc. If you attach a prefab like this to all tiles in the tileset, you could have performance issues.
     
  27. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    This was added for next release v1.4.1 still being validated by Unity. I hope it will be available during this week.

    About your question, you can use the CarpetBrush as base and create a new brush to achieve that.
    But first, I will explain the Road Brush better so you understand how it works.

    First of all, there is an array with 16 elements, one per each combination depending on neighbors around the tile (only up, down, right and left, not taking into account the diagonals)
    So if you check in this order: Up, Right, Down & Left if the tile should autotile or not, and place a bit with 1 when it autotiles and 0 if it doesn't, you end with an integer between 0 and 15 corresponding with a position in this array:
    upload_2016-11-7_13-42-34.png
    You can see in ASCII a representation of the brush matrix with the index in the array matching that position.
    You will use this later to display the grid in the RoadBrushEditor.
    upload_2016-11-7_13-44-21.png

    Now the RoadBrush needs to implement the IBrush.Refresh method. This method is called when tilemap is refreshed or tile needs to be updated, for example when a neighbor tile has changed:
    upload_2016-11-7_13-46-30.png
    This code has changed in the next version, but you should see something similar to this, where each neighbor is checked and depending of the check value, the idx value will change to match the TileIds array.
    RefreshLinkedBrush is called to allow using another brush to draw a tile of a RoadBrush, like a random or animated brush, for example.
     
  28. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    Now, to change the CarpetBrush to draw the tiles like a RoadBrush, but keeping the corners, you should:
    • Change the CarpetBrushEditor to use a 4x4 matrix, instead of a 3x3 matrix. Basically take this array from RoadBrushEditor and copy it over the CarpetBrushEditor array:
    upload_2016-11-7_13-52-32.png
    • Now, in the CarpetBrush, you have to remove the lines were s_needsSubTiles is set to true in case of any combination for a straight line is matched
    upload_2016-11-7_13-56-9.png
    This was making the method GetSubtiles to create later a tiles made of other sub-tiles. Now you can remove these cases if you want. Anyway this code won't be executed if s_needsSubTiles is not true.
     

    Attached Files:

  29. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    This is a list of all changes made for the next version of Super Tilemap Editor 1.4.1:
    • Added Brush Mask to brush palette to filter brushes by type
    • Added option Show In Palette in brushes to unhide them in the brush palette
    • Added the name of the brush in the brush list
    • Added Atlas Editor Window to modify the padding and extrude the tile color after creating the tileset
    • Added autocomple from tile selection to Carpet & Road brushes
    • Added a reset button to Tilemap\Map\CellSize to set the cell size that fits the pixels to units set in the tileset
    • Added new autotiling modes for brushes: EmptyCells & TilemapBounds
    • Added string type to tile parameters
    • Added Zoom slider to tile palette
    • When a tilemap linked to a prefab is refreshed, the game objects instantiated by tiles will fix the prefab connection, breaking the tilemap prefab link.
    • Visual improvements
    • Keypad '+' & '-' will cycle the tilemaps when painting in a tilemap inside a tilemap group
    • Autotiling between groups is now allowing group A to make autotiling with group B but not the opposite
    • Holding Control/Command key while right clicking when painting will take the first tile not empty from the list of tilemap in the tilemap group from bottom to top, and will select the tilemap where the tile was copied from.
    • The prefabs instantiated by a tile now are rotated 180º and 270º instead of negating both X & Y scale
    • Tilemap chunks are now hidden when instantiating a prefab and also during tilemap Awake event
    • Minimum tile size for a tileset is now (1,1)
    • Fixed animated brushes used in Carpet & Road brushes, now they are animated.
    • Fixed an bug setting the Z scale to 0 when a tile was instantiating a prefab
    • Fixed null exception when modifying a tile collider from Tile Property Window and there was no tilemap selected
    • Fixed some out of bounds exceptions when changing the tilemap tileset for another with less tiles
    • Fixed line artifacts due to float errors when calculating tile vertex position
    • Fixed null exception when selecting a brush from another tileset to be used by a brush to paint a tile
    • Fixed removing invalid brushes from tileset when they are deleted or the tileset has been changed
    • Fixed updating paint brush when cell size is changed
    • Fixed issue with BrushTileGridControl when using a grid with width != height
     
  30. thomas-waldick

    thomas-waldick

    Joined:
    Jul 14, 2015
    Posts:
    19
    I'm so sorry but I'm still not sure what you mean. It's definitely not your fault, idk why I'm having issues. Let's forget the sprite renderer and say I want to add spikes with a script to so it'll be affected in a grid like the rest of the tilemap, how would I do that? You keep mentioning prefab but I'm not sure what you're referring to. Sorry for the confusion!
     
  31. thomas-waldick

    thomas-waldick

    Joined:
    Jul 14, 2015
    Posts:
    19
    Figured it out -_-. Looked in the documentation and needed section 3.1 and 3.2. I didn't realize there was another window. Derp
     
  32. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    No problem, good to know you found the answer ;)
     
  33. thomas-waldick

    thomas-waldick

    Joined:
    Jul 14, 2015
    Posts:
    19
    So I tried importing the asset from the store to my project and got some errors. No idea why...

    Assets/CreativeSpore/SuperTilemapEditor/Scripts/TiledImporter/Editor/TmxImporter.cs(89,47): error CS0117: `Tile' does not contain a definition for `uv'

    Assets/CreativeSpore/SuperTilemapEditor/Scripts/TiledImporter/Editor/TmxImporter.cs(94,26): error CS1502: The best overloaded method match for `CreativeSpore.SuperTilemapEditor.Tileset.SetTiles(System.Collections.Generic.List<CreativeSpore.SuperTilemapEditor.Tile>)' has some invalid arguments

    Assets/CreativeSpore/SuperTilemapEditor/Scripts/TiledImporter/Editor/TmxImporter.cs(94,26): error CS1503: Argument `#1' cannot convert `System.Collections.Generic.List<Tile>' expression to type `System.Collections.Generic.List<CreativeSpore.SuperTilemapEditor.Tile>'
     
  34. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    It looks like you hace another class or struct defined with the name Tile and it's not enclosed inside a namespace. Maybe if you go to that line of code and press F12 over the Tile word, it will lead you to the other Tile class.
    Add a namespace to enclose the other Tile class or add the namespace before the Tile word:
    CreativeSpore.SuperTilemapEditor.Tile
     
  35. kaykay

    kaykay

    Joined:
    Aug 1, 2012
    Posts:
    17
    According to the manual document, when creating tileset with grids properties,
    there are only offset and padding properties, without tile spacing properties...as follows..

    ---------------
    Grid :
    - Pixel Size: x, y
    - Offset:x,y,
    - Padding: x, y
    [ Slice Atlas ] ....button...

    How can I import the spritesheets, which is consisted with some pixels spaces between sprites..???
     
  36. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    The padding is the spacing between tiles, and the offset is the space between the top left tile if the spritesheet to the top left corner of the texture.
    These parameters works in the same way the parameters with the same name work in the Unity Sprite Editor when slicing a texture using the grid settings.
    https://docs.unity3d.com/Manual/SpriteEditor.html
     
  37. kaykay

    kaykay

    Joined:
    Aug 1, 2012
    Posts:
    17
    okay,,, it didn't work correctly in my case,
    But, it works well now, after I changed the atlas image texture format from texture to the sprite type,..



    And Is it support for the Unity 5 version only ???
    What's the SuperTilemapEditor version for the last Unity 4.7.2 version???
     
    Last edited: Nov 12, 2016
  38. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    Yes, there is only support for Unity 5. Only RPG Map Editor has support for Unity 4 as well.
     
  39. AstralGhost

    AstralGhost

    Joined:
    Jun 17, 2016
    Posts:
    2
    Hey CreativeSpore!

    I finally got around to buying your asset and it's mostly working great but I've got two questions.

    1. Are you including the Brush emongev asked about, that you explained how to make above, in the next version? If not, can you please do that? Coincidentally enough I actually came here to request that exact same feature myself!

    2. When I create a Carpet brush using tiles that have colliders the new brush has no colliders when painted, and there seems to be no way to add them to the brush itself. Is this a bug or am I missing something? Road Brushes seem to work fine, only Carpet brushes seem to have the issue... but I also only tested the two so I don't know about the other brushes.

    Thank you!
     
  40. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    Hi there,

    About your questions:
    1. I will add this request to my TODO list, and try to add this to a future release. Anyway as you can see in my post, it's really easy to create this brush from the CarpetBrush code.
    2. You can only set colliders for tiles, not brushes. Brushes use tiles, so the colliders are taken from the tile. The fastest way to add colliders to a brush is drawing the brush over a tilemap and modify the colliders directly in the tilemap.
    This video tutorial will show you how to do that.
     
  41. Falconerd

    Falconerd

    Joined:
    Sep 8, 2014
    Posts:
    2
    This is a great case of RTFM. I went and read the API for Linecast and have now realised that you should use hit.point not hit.transform.

    Disregard everything below this point, I'll leave it here for reference.

    Hi, I bought your tile editor as it seemed to be the best one around at this time. However, I'm having an issue to do with Linecast.

    When using a Linecast and setting the Tilemap Layer to Ground, the Linecast hits something other than the ground tiles... I get the position set as the tilemap layer instead of any individual tile.



    Linecast is hitting something which is positioned where the bottom left corner of the red box is, perhaps that box itself?



    I can probably get around this by not filtering the Linecast at all and then going through the results and using some other identifier... Perhaps I'm missing something really obvious here?

    Any help would be greatly appreciated.

    EDIT: I've since tested this in a clean environment and can reproduce this issue.
     
    Last edited: Nov 16, 2016
  42. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    I'm glad you found the answer. Don't hesitate to ask if you need help ;)
     
  43. Grandy12

    Grandy12

    Joined:
    Apr 22, 2016
    Posts:
    3
    Hey man, I'm currently using the asset, and while I'm loving it, I'm having one problem and one question.

    The question is; is it possible to assign tags to the tilemap collider?

    And the problem is; the character is loosing ground collision for a single frame while walking on top of a ground made using the editor. Always on the same spot, he enters the 'falling' animation for a split frame, then back to walking as usual. We've no idea why.

    EDIT:

    So we found out what was causing the jump; it's when the character steps out of one of the 60x60 chunks and into the next one. Is there any way to prevent that?
     
    Last edited: Nov 19, 2016
  44. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    Hi there,

    Yes you can assign tags to the colliders, but they are attached to the chunks that are invisible by default. You can show them by checking Show tile chunks in the Map section of a tilemap:

    upload_2016-11-20_14-33-46.png

    I could change the code to apply the tilemap tag to the chunks. I would be an easy fix.

    About the problem with the chunks, it could be because of the way you check for the ground collision. Could you give me more information about this?
     
  45. HaBe

    HaBe

    Joined:
    May 29, 2014
    Posts:
    31
    Hi there,
    just imported and tested STME following your Quick Start Guide and everything works good so far... but there always has to be a 'but' in sentences like these.
    I've selected one of my tiles, changed to collider mode (2D), and while I can see the vertices when hovering over the tile, I can't modify the collider mesh at all (no move, add, remove etc.). I've tried both collider modes, but no luck. Imported into Unity 5.4.2f2.
    Let me know what else you need to know.

    EDIT: And I found the answer myself, first had to actually ADD a collider via Alt + Click. It's a bit confusing that vertices are shown even if there's no actual collider attached, just as a hint for usability. Cheers!
     
  46. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    That's great you found the answer. And thanks for the tip. I will change it to avoid mistakes in the future.
     
  47. HaBe

    HaBe

    Joined:
    May 29, 2014
    Posts:
    31
    Welcome. Maybe add a message in the inspector that first a collider has to be added - only if none is present of course - with Alt+Click (or maybe even via an additional button accompanying the message in the inspector) before anything else can be done.
    Would make it absolutely clear for starters.
     
  48. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    I have make the vertices more transparent when the tile colliders are disabled. But I think showing them could be interesting.
    And also changed the help list order and highlight the tip taking about enabling / disabling the tile colliders
    upload_2016-11-23_15-44-46.png
     
  49. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,104
    This is an issue with the serialization. It happens when you have the serialization mode to force text and you change the Unity version. Try using serialization mode to mixed or binary.
    I have imported the last version of the tool 1.4.1 in a clean project using Unity 5.4.3f1 and it worked properly.
    But if you still have issues don't hesitate to let me know and I will try to find another solution.
     
  50. Grandy12

    Grandy12

    Joined:
    Apr 22, 2016
    Posts:
    3
    Hey, thanks for the reply, the ground check was originally being done like this;

    http://i.imgur.com/VvArZBR.png

    Where the bigger rectangle d ball are used as colliders, and the lower, smaller rectangle is a trigger used to detect the ground.

    We managed to fix the chunk problem code by making the code check for 'if the number of grounds touched is more than 0' instead of just 'if is touching ground'.

    Now we sort of ran on another problem, though; would it be possible to put two different colliders with two different tags in the same kind of tile? Because we need the character to collide with walls and the ground, but differentiate between them. The reason we need to is because the character was wall-climbing, since touching the wall would reset the number of jumps avaiable (and also change his animation to the grounded one).

    We solved it by making the ground-checking trigger smaller than the collider, so that it wouldn't touch the wall. That lead to another problem, where standing on the edge of a tile would make the character not fall (because he was colliding with it still) but think he was in the air (because the trigger wasn't touching the edge).

    So we added that collider ball, to make the character slide down edges. While that solution *works*, it is not the preferrable course we'd like to take.

    The best solution, we'd think, would be to put a trigger on the ground, instead of the character. We're thinking about making it so there's another invisible layer of tiles, with triggers, on top of the tiles with colliders. But if we could round them up to be the same layer, it'd be even better.

    Not sure I managed to explain the problem, it's sort complicated I guess.
     
unityunity