Search Unity

  1. Unity 2018.3 is now released.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. Want more efficiency in your development work? Sign up to receive weekly tech and creative know-how from Unity experts.
    Dismiss Notice
  4. Build games and experiences that can load instantly and without install. Explore the Project Tiny Preview today!
    Dismiss Notice
  5. Nominations have been announced for this years Unity Awards. Celebrate the wonderful projects made by your peers this year and get voting! Vote here!
    Dismiss Notice
  6. Want to provide direct feedback to the Unity team? Join the Unity Advisory Panel.
    Dismiss Notice
  7. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice

[RELEASED] Super Tilemap Editor

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

  1. Filipinjo

    Filipinjo

    Joined:
    Jan 7, 2014
    Posts:
    19
    I have a big texture (1024*4096) and when I want to extrude or preview it in atlas editor i get this error:

    Code (CSharp):
    1. ArgumentOutOfRangeException: Argument is out of range.
    2. Parameter name: index
    3. System.Collections.Generic.List`1[UnityEngine.Rect].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    4. CreativeSpore.SuperTilemapEditor.AtlasEditorWindow.BuildAtlas (UnityEngine.Texture2D atlasTexture, Int32 tilePadding, Int32 tileExtrude, Vector2 tileSize, Int32 widthInTiles, Int32 heightInTiles, System.Collections.Generic.List`1 rects) (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Editor/AtlasEditorWindow.cs:190)
    5. CreativeSpore.SuperTilemapEditor.AtlasEditorWindow.BuildAtlas (UnityEngine.Texture2D atlasTexture, Int32 tilePadding, Int32 tileExtrude, CreativeSpore.SuperTilemapEditor.Tileset tileset) (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Editor/AtlasEditorWindow.cs:171)
    6. CreativeSpore.SuperTilemapEditor.AtlasEditorWindow.BuildAtlas () (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Editor/AtlasEditorWindow.cs:152)
    7. CreativeSpore.SuperTilemapEditor.AtlasEditorWindow.OnGUI () (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Editor/AtlasEditorWindow.cs:90)
    8. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    9. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    10. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    11. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    12. UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:295)
    13. UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:288)
    14. UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:255)
    Otherwise I've imported the tileset from TMX file... all seems cool but when I open the view of tileview "D" which is in the middle of other tileviews I get the error:

    Code (CSharp):
    1. GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)
    2. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    and

    Code (CSharp):
    1. ArgumentOutOfRangeException: Argument is out of range.
    2. Parameter name: index
    3. System.Collections.Generic.List`1[System.UInt32].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    4. CreativeSpore.SuperTilemapEditor.TilesetControl.Display () (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Editor/TilesetControl.cs:265)
    5. CreativeSpore.SuperTilemapEditor.TilesetEditor.OnInspectorGUI () (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Editor/TilesetEditor.cs:121)
    6. UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor[] editors, Int32 editorIndex, Boolean rebuildOptimizedGUIBlock, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1253)
    7. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    PS: Otherwise I love this asset :D
     
  2. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    Hi there!

    The problem with the texture is probably because the Max Size is set to 4096. Try changing it to 8192.

    About the other problem. I am not sure why it is failing. It would be great if you can send me a test project so I can check it myself. You can blur or black the textures, I only need to check why the error is happening.
    But you can also fix it by adding this line of code. It should avoid the error and display something that could be a clue of what is happening when the tileview is displayed:
    && (tileId - tileIdOffset < tileView.tileSelection.selectionData.Count)
    upload_2018-7-11_12-50-25.png
     
  3. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    I found the bug! Here is the patch.
     

    Attached Files:

  4. KhenaB

    KhenaB

    Joined:
    Aug 21, 2014
    Posts:
    260
    I think I found a bug, I have multiple scenes with a Tilemap in each scenes, I changed some of the collisions on the Tileset they all use, but for the changes to take effect I have to go in each scenes and save the scenes, or else they still use the old collision. It took me a while to understand why my character was going through the floor when changing scenes.
     
  5. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    That is something made by design. The colliders are recalculated only if you refresh the tilemap so if you change the collider of a tile later, it wont change until you refresh the tilemap or made a modification like painting a tile (that will update only the chunk where you paint the tile).
    In the editor, you can refresh all the tilemaps at once if you press the refresh button in the toolbar while the tilemap group is selected.
    The tilemaps are also updated automatically in the current scene, but for every scene.

    You could also force a Refresh by code when the scene is started, but as this is less optimal than refresh it in the editor I prefer to leave it to the user when it is necessary using a custom script.
     
  6. Raseru

    Raseru

    Joined:
    Oct 4, 2013
    Posts:
    22
    For the AnimBrush, is there no way to set the FPS for the individual frames? Or perhaps setting a delay before it repeats each time?

    Also, is there a way to make a brush with a wall that is more than 1 tile tall in top-down like the walls inside a building or a cliff? For instance, see this image:


    Or would we need to separate that into multiple brushes?

    I've seen it done in Tiled before, but maybe it overcomplicates things:
     
    Last edited: Jul 20, 2018
  7. Klausini

    Klausini

    Joined:
    Feb 19, 2010
    Posts:
    28
    I am still relatively new to C#. I am trying to implement your pathfinding to a STETilemap. However, colliders are ignored. I have set the cell size to 3.2, 3.2 in the map and in the PathfindingBehavior script. Stupid me, but I cannot spot the difference to the RoguelikeDemo. Is there a checklist I can go through?

    - using edge colliders: check
    - clicked "update collider mesh" and saved the scene: check
    - played with "reverse normals": check




    Also a second question came up: I am trying to work with Timescale. Speeding things up breaks asynchronous pathfinding. Synchronous pathfinding only goes straight from start to finish. I am not skillful enough to understand why ComputeSync does not provide a full list of nodes. What would be the general concept of calculating a full path with a high timescale?

    Many, many thanks in advance!
     
    Last edited: Jul 21, 2018
  8. Andrew122222

    Andrew122222

    Joined:
    Jul 8, 2012
    Posts:
    27
    It's nice using the brushes but one thing I'm missing is "inner corners". It would be nice if this part was automated.

    Here is what I mean. Say I have a brush like this:


    Ok looks good, so now I'll use it:


    Okay, the platform looks pretty good. Except those corners don't look very good. So I'll manually put the corner tile in:


    Okay that looks better. But the problem is, I wish this could be done automatically. It's quite a pain going through the entire level placing in each inner corner tile manually. Do you know if it's possible to resolve this?
     
  9. Raseru

    Raseru

    Joined:
    Oct 4, 2013
    Posts:
    22
    Have you tried using a carpet brush? It can do those corners. Although maybe you might get a different look, not sure without testing. You can also create new brushes, maybe taking from your current brush and the carpet one if the carpet doesn't work.
     
    CreativeSpore likes this.
  10. Raseru

    Raseru

    Joined:
    Oct 4, 2013
    Posts:
    22
    When you draw with a brush that has colliders, but then want to draw something like a door or cave entrance, you can't draw on the same tilemap as the brush itself because it treats it separately from the brush and abruptly ends there. You can draw on a separate tilemap but then the collider still exists not allowing you to enter there. What exactly are you supposed to do here? Somehow remove the collider from that specific location? Not sure how unless I just had a blank tile for collision and manually drew on a separate layer.
    cliff_cave.PNG
     
  11. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    Well, for the AnimBrush, I have made some modifications to allow adding an Animation Delay. You can see the new parameter in the Brush Inspector. This delay will be added to each tile incrementally.
     

    Attached Files:

    lostdragon likes this.
  12. CreativeSpore

    CreativeSpore

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

    You don't really need to change the CellSize because it will be automatically set with the first tilemap of a tilemap group found in the scene. Otherwise be sure the size if the same.
    Also, check if the tilemap group or the tilemap inside are located at position (0, 0, 0).
    This way it should work without any other setup,

    I am working in some improvements for the path finding for the next update. I have fixed some bugs, like the need to have the tilemap in the position (0, 0, 0).
    Maybe this update will make it work better.
    Please, remove the folder MapPathFinding in "\Assets\CreativeSpore\SuperTilemapEditor\Extra\Tileset - Samples\Kenneys - Rogue Like" before apply the patch. The folder has been moved and it will cause a compilation error for duplicated classes.

    Anyway, if you don't manage to make it work, you can send me a test project or package so I can test myself what is going on.

    About the second question. There was another bug related with the time fixed in the attached package, so that should be fixed after applying the patch.

    And ComputeSync doesn't return a list of nodes because it is supposed to update the list of nodes m_pathNodes. Maybe the name should be UpdatePathSync instead.
    If you want to get a list of nodes from position A to position B, use this instead:
    LinkedList<IPathNode> pathNodes = PathFinding.GetRouteFromTo(startPos, endPos);
     

    Attached Files:

  13. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    As Raseru said, you can use the carpet brush for that.
    If you have problems with the tile collder, you can also uncomment this line to allow subtile colliders:
     

    Attached Files:

  14. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    In this case, you need to draw the cave tile in the same tilemap as the cliff and to make the cliff autotile with the cave tile, you need to use the tilemap groups.
    For example, in this example I use the Group Walls for the Brush and the broken wall tile:
    upload_2018-7-23_16-10-7.png
     
  15. Raseru

    Raseru

    Joined:
    Oct 4, 2013
    Posts:
    22
    Thanks a lot for being awesome :)

    For the animation delay, it wasn't exactly what I was expecting because my original idea was to have an animation only trigger maybe every 30 seconds or so (like a fish appearing and splashing).

    That said, the change you did instead is still really awesome! Now all the animations are staggered, very cool, I will use this a lot with water/foliage/etc. Another neat affect I see is you can actually create staggered waves in water as it moves linearly when next to each other.

    I was confused on how to use it initially though. Whole numbers don't change how it works, so maybe for the next release, limiting the range with [Range(0f, 1f)] might make it a little more user friendly. Maybe even call it Anim Stagger, but not necessary.

    Also thanks for the brush group help!
     
  16. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    You can add the delay for the fish if you add some empty frames (transparent) before the fish appearance.
    The delay is in seconds and you have to take into account the length of the animation. For example, if you have 4 frames at FPS=4, it means, the duration is 1 second, so if you add an integer delay like 4, 6, 9, at the end, all the tiles will loop at the same moment.

    For example, if you want to delay the next tile a frame, you will need to add a 1/4 delay or 1/FPS delay.

    A tip for Unity, you can write math operations in a field and it will calculate the result, so you can write 1/4 and it will become 0.25.
     
  17. Klausini

    Klausini

    Joined:
    Feb 19, 2010
    Posts:
    28
    Thank you very much!! Your product has been rated.
    Fixing the tilemap position did the trick. I still have issues with the timescale, but as the node positions do not change I guess I have a bug elsewhere. I need more time for this.

    I do have some follow up questions though :)
    - Could you please provide a short example of how to calculate "m_costFactor" using tile parameters in the mapPathFinding.cs? Your provided new version is different to your solution provide earlier in this forum.

    - is there an easy way to add distance to tile colliders for the pathfinding? How can I ensure my units do not walk right on the edge of the collider?

    - I just saw you also offer the RPG Map Editor on the store. Is is possible to upgrade from the STE to this? Is the easy isometric sorting included in the RPG Map Editor?

    Again, thank you very much! This is an awesome tool!
     
  18. Raseru

    Raseru

    Joined:
    Oct 4, 2013
    Posts:
    22
    Ah I see, thanks!
     
  19. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    Here you have an example of m_costFactor.
    upload_2018-7-29_19-54-0.png
    Code (CSharp):
    1. //example: get the cost factor from a float parameter called CostFactor from the tilemap with name "Ground" using default value 1f.
    2. Tile tile =tilemapGroup["Ground"].GetTile(GridX, GridY);
    3. m_costFactor = tile != null? tile.paramContainer.GetFloatParam("CostFactor", 1f) : 1f;
    4.  
    You cannot add distance to tile colliders, you need to setup your colliders to be sure that doesn't happen. If you want to post an specific use case I could give you some advice as well.

    And there is no upgrade from STE to RPG Map Editor, they are different products and the tilemap editior in RPG Map Editior works different to STE by the way.
     
  20. KhenaB

    KhenaB

    Joined:
    Aug 21, 2014
    Posts:
    260
    I'm trying to detect what type of ground I'm standing on to play different footstep sounds, is tile parameters the suggested way to do this, if so how do I access the tile parameter using a raycast
     
  21. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    You don't need raycasting, but if you do, you can use the raycast origin position or just the player transform position.
    Then, to get the tile parameter you can use this:
    Code (CSharp):
    1. Tile tile = tilemap.GetTile(player.transform.position);
    2. if(tile != null)
    3. {
    4.    tile.paramContainer.GetFloatParam("FloorPitch", 1f);
    5. }
     
  22. KhenaB

    KhenaB

    Joined:
    Aug 21, 2014
    Posts:
    260
    When you say I don't need raycasting, how would you get a reference to the tilemap below the character, as for GetTile I'm assuming it gets the tile of that tilemap at the specified world position?

    Also a suggestion, would it be possible to allow multi tile editing for the parameters? Or at least pasting a tile parameter to another tile, or multiple tiles at once,

    thanks!
     
  23. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    In that case you can use raycasting. I guess you were checking the same tilemap all the time.
    Then you can use the ray.origin instead of player.trasnform.position.
    By the way, GetTile expect a local position, so if you change the tilemap position you should add wrap the position like this:
    tilemap.transform.InverseTransformPoint(player.transform.position)

    About the tile parameters, I have added an option to merge the parameters found in the tile selection. Remember you can also select tiles from the tilemap in the scene, not just the tile palette.
     

    Attached Files:

    KhenaB likes this.
  24. KhenaB

    KhenaB

    Joined:
    Aug 21, 2014
    Posts:
    260
    Thanks that worked perfectly

    I've been thinking about another way to detect which type of ground I'm standing on, I have a script which lets you pick an enum to select the surface type, I've made a prefab with this script as a component and added the prefab to a tile with "Show tile with prefab" checked.

    However I'm not sure how to access that prefab, the hit object below my character is called -2_0 and it doesn't see a script attached, how to I access the prefab of a tile?

    Thanks
     
  25. KhenaB

    KhenaB

    Joined:
    Aug 21, 2014
    Posts:
    260
    I see what the problem is, even if the tile is spawning a prefab, the collider that my raycast is hitting is the tilemap's edge collider, I'm guessing the prefab would need it's own collider and that's getting too complicated for what I'm trying to achieve

    I'm trying to find a simple way to know what type of ground the player is on, in a way that would work seamlessly with STE's Tilemaps and regular gameobjects in Unity, using tags is another option I had in mind but STE doesn't have a per-tile tag, whenever I hit a ground collider below I could check the tag and use that to determine what sound to play, it would be really useful if STE allowed to get a tile's tag in the same manner without doing more complicated steps
     
  26. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    Well, for your case you could do this:
    • Use raycasting to get the Tilemap (optionally you could use a reference to the Ground tilemap)
      • Option 1: using parameters you can use a parameter like FloorType or similar
      • Option 2: get the tile id with Tileset.GetTileIdFromTileData(tilemap.GetTileData(transform.position)) and depending of the id, play a different sound (but I prefer the first option)
      • Option 3: Use a prefab could be also an option. To access the prefab you can use tilemap.GetTile(transform.position).prefab (check if tile is not null, I made it simple here).
      • Option 4: You can use different tilemap for each kind of floor
      • Option 5: You have something similar to a per tile tag. You have create a group for tiles (mostly used for autotiling, but possible to use it for matters)
    upload_2018-8-1_12-5-48.png
     
    KhenaB likes this.
  27. KhenaB

    KhenaB

    Joined:
    Aug 21, 2014
    Posts:
    260
    Thanks, will give those suggestions a try and see what works best
     
  28. TimNedvyga

    TimNedvyga

    Joined:
    May 18, 2015
    Posts:
    51
    @CreativeSpore Hello, I noticed that it's not possible to rotate or flip Random Brush, is it possible to add this feature?
     
  29. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    Hi there!
    By design, it is not possible. In a brush, you can set the flags for the tile in case you want different combinations. But even if you could change the flags of a tile painted by a brush in the tilemap, when you refresh the tile, the flags would be lost.
     
  30. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    There is new version of Super Tilemap Editor v1.5.0 available!
    Also it would be on sale at 30% off from 35$ to 24.5$ until August 17th!


    There has been some improvements in the pathfinding behavious, including support for raycasting to block areas with colliders and not just tile with colliders.
    Also, you can move to a blocked tile if there is an adjacent passable tile.
    And you can set a maximum path distance as well.

    Changelog v1.5.0:
    • ADDED ClearTiles button near ClearMap, to clear the tiles but keep the map bounds.
    • ADDED Merger Tile Parameters option in Tile Properties Window when multiple tiles are selected.
    • ADDED MaxDistance to pathfinding to limit the path to a certain distance
    • ADDED AnimDelay parameter to AnimBrush to add a delay in the animation for each rendered tile
    • ADDED PassableDetectionMode to MapPathFinding with support for raycasting 2D and 3D to detect if the path to a tile is not blocked by a collider
    • CHANGED the way AllowBlockedDestination is managed
    • ADDED parameter "cost factor" to MapTileNode for future use.
    • MOVED MapPathFinding folder inside Scripts Folder (NOTE: you need to manually remove the previous folder after updating the tool "\CreativeSpore\SuperTilemapEditor\Extra\Tileset - Samples\Kenneys - Rogue Like\MapPathFinding")
    • FIXED pathfinding diagonal move when it's in between tiles passable but with blocking colliders
    • FIXED TilemapUtils.GetMouseGridX/Y when using a camera in perspective mode.
    • FIXED some TileDataAttribute exceptions
    • FIXED when selecting a tilemap, the current editor tool is disabled. Now, the previous tool is enabled again after unselecting the Tilemap
    • FIXED MapPathFinding to take into account tilemap with a position different than (0, 0)
    • FIXED out of bound exception when using the Atlas Editor with a Tileset exported from Tiled
    • FIXED Refresh and Clear Map button now affect to all selected tilemaps
    • FIXED tile selection with Ctrl now selects the first non empty tile found in a Tilemap Group from top to bottom
    • FIXED out of bounds exception when a tileView is selected the number of tiles is less than tileViewWidth * tileViewHeight
    • FIXED division by zero exception when slicing a tileset and the height of the texture is less than the tile height, so no tiles are sliced. Now an error message will inform about the problem.
    • FIXED crash when using Deep Profiling in Unity 2017.3.1f1
    • FIXED bug in PathFinding when computing more than a path during the same Update
     
    lostdragon likes this.
  31. cuproPanda

    cuproPanda

    Joined:
    Apr 20, 2014
    Posts:
    2
    I'm brand new to 1.5.0, so I'm still in the process of getting acquainted with the code. I tried searching in this forum, but found no relevant answers, so I apologize if this question has been asked before, but how do I enable frustrum culling for the STETilemap? I have tried enabling AutoTrim and calling UpdateMesh, which sounded like it would do what I needed, but all visited areas remain rendered even when no longer visible. It doesn't appear as though the tilemaps or chunks contain any way to cull them.

    Below is my current map after moving around a little. Ideally I'd like to render the surrounding 3x3 chunks (I'll shrink them down a little later, they still have the default size). I had a method before where I would find the tiles needing to be culled each frame, so if I have to manually cull tiles/chunks that is fine.


    Pooling is another concern I have, but that depends on how performant the tilemap is - so far it looks like I may not need to do that. Overall I'm very happy with the code and my purchase!

    EDIT: I solved it by calling Erase for each tile no longer within viewing range. Like I said, I'm still getting acquainted with the code :)
     
    Last edited: Aug 14, 2018
  32. Klausini

    Klausini

    Joined:
    Feb 19, 2010
    Posts:
    28
    Thank you for the new version! However, I still have issues with the pathfinding when timescale is higher than 1. If I set Time.timeScale = 8f movement becomes very jittery in asynchronous mode.
    Unfortunately, synchronous mode seems to have a bug that the i.e. the red dot in the RoguelikeDemo moves to some node in the middle of the path, then goes backwards and then to the final target node.

    It feels like I spent ages on trying to fix this, but I have to admit the coroutines in combination with timeScale are still black vodoo magic to me.
    Would it be possible that you can provide a pathfinding routine without a coroutine?
    Many, many thanks!
     
  33. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    I think you were expecting the chunks to disappear in the Scene View they were outside the camera view?
    If that is right, you don't have to worry about culling. It is already done when the chunks are outside of the camera frustum, but in the Scene View they are not, the Scene View camera is also rendering the chunks when they are inside its frustum.

    If you want to generate the tilemap in real time, there is a demo in the forum that I have attached here that could help you to do what you need.
     

    Attached Files:

  34. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    I will check it with different timeScale. I didn't test it with a scale different than 1f, so maybe there is some bugs.
    You can also use the pathfining without a coroutine. There are two methods to calculate a path, one using a coroutin (Asynchronous), and other without a coroutine (Synchronous.)
    upload_2018-8-16_16-46-20.png
    upload_2018-8-16_16-47-34.png

    I have fixed a bug with Synchronous mode in the attached package making it to the last position directly.

    I have tested it with Time.scale = 8f and Time.scale = 0.2f and it worked fine in both modes.
    How are you calculating the route?
     

    Attached Files:

  35. qazokmijn01

    qazokmijn01

    Joined:
    Nov 13, 2016
    Posts:
    3
    upload_2018-8-17_15-11-23.png

    i have problem with scale size game window Vertical line will visible
    somebody help me thank !
    Sorry my english not good.
     
    Last edited: Aug 17, 2018
  36. CreativeSpore

    CreativeSpore

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

    You can find some help removing the seams in the F.A.Q section of the manual.
    upload_2018-8-18_10-9-9.png
    Also, you can easily remove the gaps adding value like 0.2 in the Inner Padding parameter.
    upload_2018-8-18_10-18-59.png
     
  37. qazokmijn01

    qazokmijn01

    Joined:
    Nov 13, 2016
    Posts:
    3
    Oh thank you very much
    Have a good day ^^
     
    CreativeSpore likes this.
  38. jebediahh

    jebediahh

    Joined:
    Feb 20, 2017
    Posts:
    16
    Hi.. I have an animation where each frame is a large image - each image is 2048x2048... It looks like in order to create an animation you need to use the animbrush and each image in the animation needs to be in one tileset. This is not doable in this case since the tileset would have to contain like 50 2048x2048 images which would be enormous. Is there a way to create an animation by specifying the image files, or just in general.. can you see a way for me to create this animation through STME ?
     
  39. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    In that case, you could create the animation using the Unity Animator.
    Select all the sprites and drag them to the scene to create it in a single step.
    If you want to paint the animation with STME, you can attach the prefab with the animation to any tile in the tileset.
     
  40. ralphyua

    ralphyua

    Joined:
    Mar 28, 2017
    Posts:
    20
    I keep getting this error that says " Profile Sampler Tilemap.Update() exists but has a different group " when I use the profiler. The error keeps printing in the console. Anybody else getting this error? The game keeps running and doesn't crash, but it would be nice to know what this error is. If so, does this error have to do with STME or is this a Unity specific error? Hope somebody can shed some light on this because I did a Google search and found nothing.
     
  41. qazokmijn01

    qazokmijn01

    Joined:
    Nov 13, 2016
    Posts:
    3
    hello how to mask tilemap ?
     
  42. Raseru

    Raseru

    Joined:
    Oct 4, 2013
    Posts:
    22
    For the STE Tilemap, there's a Collider 3D option which is neat, but the colliders are limited to just the edges. Is there anyway I could enclose these colliders so I could use the surface to walk on? I'm planning on having different levels of height for tilemaps in a top-down



    If I modify the collider for each tile to have gaps I can kinda create a surface, but that isn't really sustainable of course.
     
    Last edited: Aug 29, 2018
  43. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    203
    Any ideas why TilemapChunk.OnWillRenderObject() is generating 160b of GC every frame? Every chunk displayed seems to be adding 40b per frame.
    I don't recall this happening before..
     
  44. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    What version of STME and Unity are you using? The Tilemap class was changed to STETilemap long ago. Are you using the Profiler in the code and named it Tilemap.Update?
     
  45. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    Use a prefab with the component TileObjectBehaviour attached to the tiles you want to be affected by a mask. That way the tiles will be placed using a SpriteRenderer component.
     
  46. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    Hi there!
    It was designed to create the walls in 3D and there is no way to make it create the floor colliders.
    I don't know how to do it unless you use a prefab attached to the tile with the floor collider.
     
  47. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,004
    Hi there!
    I have fixed the issue in the attached package.
     

    Attached Files:

  48. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    203
    Its gone! thanks.
     
    CreativeSpore likes this.
  49. NechyporukEvgen

    NechyporukEvgen

    Joined:
    Sep 3, 2013
    Posts:
    26
    Hello, a bug in pathfinding in the demo "RoguelikeDemo". It upset me (
    pathfinding_fail.jpeg
     
  50. guybro_thunderboots

    guybro_thunderboots

    Joined:
    Aug 27, 2015
    Posts:
    17
    Is it possible to name individual tiles in a Tileset?

    In order to be able to "paint" prefabs with STE, I made a new Tileset out of a 800x800 fuschia texture, then used the Tile Properties window to set a prefab. Works great!

    However, sometimes I look at the Tileset, and while I can recognize most of the prefabs visually, some of them have similar thumbnails and I'm not sure what will be painted. It'd be great if I could name these tiles something recognizable on mouse over.