Skip to content

Releases: Cammin/LDtkToUnity

6.0.0

19 May 07:50
Compare
Choose a tag to compare

6.0.0 (2024-05-19)

Features

  • Added 4 new convenience values to the TileInstance (19f2de4)
  • Added proper support for rule's offsets and randomized offsets (previously they would layer improperly) (76c1e9f)

Performance Improvements

  • Avoid a null check in a high-iteration context (25c315e)
  • Changed how the import profiling is enabled via a scripting define to never run unnessesary Profiler API calls (2749c69)
  • Optimized getting the FlipX and FlipY values from TileInstance (f21d6ea)
  • Prevent unnessesary tilemap API calls to SetTileFlags, SetColor and SetTransformMatrix (92b3afa)
  • Only one auto layer tilemap is generated per layer instead of multiple. This is done by making additional rule tiles exist in a different tilemap z cell. To keep the tiles looking good despite having different cell z values, the cellGap.z of the Grid components are now -1 (76c1e9f)
  • Added some dictionary capacity allocations for tile placement (76c1e9f)
  • Prevent unnessesary tileset artifact load attempts while building tile/auto layers (76c1e9f)
  • Various other small optimizations related to building tile/auto layers (76c1e9f)

BREAKING CHANGES

  • The generated tilemap hierarchy is different; Only one tilemap will exist per layer with auto tiles.
  • LDtkComponentLayerTilesetTiles.Tilemaps list has been changed to a single Tilemap

5.0.20

13 May 07:58
Compare
Choose a tag to compare

5.0.20 (2024-05-13)

Bug Fixes

  • Problem on mac where there an error was still displayed in the inspector even if the sh file contents are correct (e728f4d)

Performance Improvements

  • Caching intgrid value data from definitions instead of instances to avoid unnessesary calculations. Also calculating the placement cell coordinate faster (51c83ad)

5.0.16

12 May 17:56
Compare
Choose a tag to compare

5.0.16 (2024-05-12)

Bug Fixes

  • Import errors when an icon for a nonexistent tileset definition is trying to be referenced (c12d26b)
  • Separate levels checking null for artifact assets in case it's never generated by the project importer (dbded97)

5.0.2

08 May 08:34
Compare
Choose a tag to compare

5.0.2 (2024-05-08)

Bug Fixes

  • ILDtkImportedFields erroneous behaviour where extra calls with improper parameters are being passed through (177da3c)

5.0.1

06 May 22:53
Compare
Choose a tag to compare

Attention!

I'm experimenting with using semantic release, so there won't be .unitypackage on here or on itch.io for a while, and you'll need to download new versions from openupm.

I'm looking at potentially automating the unity package pipeline so that they are available like before.
With that said, here's the automated release notes, and ones for the future:

5.0.1 (2024-05-06)

Bug Fixes

  • LDtkComponentParallax will now execute after all other scripts to prevent potential race conditions in FixedUpdate or LateUpdate (d3f90df)

5.0.0

06 May 03:15
Compare
Choose a tag to compare

Additions

  • Added support for animated tiles in the import pipeline! Learn the setup here

  • Added new component LDtkComponentLayerParallax: For all layers to mimic the parallax motions seen in LDtk

  • Added new component LDtkComponentLayerIntGridValues: A component with various functions to help with getting IntGrid value data

  • Added new component LDtkComponentTilesetTiles: A component with various functions to help with tileset tiles

  • Added various new components and ScriptableObjects, eliminating any requirement to deserialize json data. Check the docs here for more info

    • Total new ScriptableObjects
      • LDtkDefinitionObjectAutoLayerRule
      • LDtkDefinitionObjectAutoLayerRuleGroup
      • LDtkDefinitionObjectEntity
      • LDtkDefinitionObjectEnum
      • LDtkDefinitionObjectField
      • LDtkDefinitionObjectLayer
      • LDtkDefinitionObjectTileset
    • Updated existing components with new json data:
      • LDtkComponentProject
      • LDtkComponentWorld
      • LDtkComponentLevel
      • LDtkComponentLayer
      • LDtkComponentEntity (new)
  • LDtkComponentWorld: Added a new convenience button to the world component inspector to spawn all the world's separate levels

    • Supports multi-selection & undo
    • Project hierarchies with separate levels enabled will now build the world GameObjects in the project hierarchy to allow this feature
  • Added three new "reimport all" buttons into project settings to optionally only reimport all .ldtk, .ldtkl, or .ldtkt files

  • LDtkPostprocessor: Added new AssetImportContext field to work with the ScriptedImporter, like to access the asset path

  • LDtkTilesetTile: Added new helper function GetEnumTagValues to parse the tile's string fields into enum data

  • LDtkTilesetTile: Added new TileId int field to LDtkTilesetTile

  • LDtkReferenceToAnEntityInstance: Added public fields for getting IID

  • LDtkIid: Added implicit operator to string

Changes

  • Optimization: Built tilemaps will now CompressBounds to potentially improve on memory/processing
  • Optimization: Greatly improved the operation speed of clicking the "Reimport All" button in Project Settings
  • Updated: New icon for AutoLayer-related content
  • Updated: Samples

Fixes

  • Compile Error: Fixed a compile error encountered in Unity 6
  • Import Fail: Fixed a tileset file import failure if a tileset texture is not set in LDtk
  • Import Fail: Fixed a problem where the export app would not work on macOS easily
    • This issue is not retroactively fixed, so for any Mac users currently facing this issue, add a $1 to the end of the file's contents in Library/LDtkTilesetExporter/ExportTilesetDefinitionMac.sh
  • Expectancy: Fixed the project importer's composite collider option not showing in the inspector if there's no IntGrid layer but if there is a Tile/Auto layer
  • Expectancy: Fixed issue when reimporting all in project settings, where some assets that failed to import would not reimport whatsoever
  • Expectancy: Added new error log if a tileset file's texture is not a TextureType of Sprite
  • Expectancy: Removed an unnecessary error log if a layer's tileset definition was not set
  • Expectancy: All checks for a backup file will now happen before checking json version to avoid unnecessary errors

Breaking Changes

  • Deprecated some values in the imported components. They are instead accessed in their definition object.
    • All deprecated values will still work the same, except for LDtkComponentProject.FromJson which now return null
  • Planning to remove LDtkEntityDrawerComponent in the future; the new LDtkComponentEntity will be responsible instead

4.2.2

16 Jan 10:32
Compare
Choose a tag to compare

4.2.2

  • Fixed 4.2.1 compile errors encountered in Unity versions 2020 and below
  • Fixed a problem with the tileset export command where it would fail if a project name has spaces. Fixed by including quotations in the second argument
  • Improved the message in the importer inspector to display the incorrect command if required

4.2.1

16 Jan 06:38
Compare
Choose a tag to compare
  • Updated json support & samples for LDtk 1.5.3
  • Added new properties to LDtkNeighbour to accomodate the new neighbour directions

Note

Changed the LDtkNeighbour._dir from char to string. It may affect the Dir API access

4.2.0

13 Jan 00:26
Compare
Choose a tag to compare

Additions

  • Updated json support & samples for LDtk 1.5.2
  • Added LDtkPreprocessor: Use to read/modify any json data before GameObject hierarchies are created
  • Added support for the additional Table-of-content data from LDtk 1.5
    • Except the Fields; will need to come later
  • Updated samples to 1.5.2

Fixes

  • Improved the experience with the tileset export app
    • Instead of the export app looking for an active windows process to get the project name, it's a new parameter in the command, being the project name.
    • The export app will now pause if errors are encountered to enable easier reading

Breaking Changes

  • This importer requires LDtk projects of LDtk version 1.5 at a minimum. Update your LDtk app and save your project.
  • Deprecated LDtkTableOfContents.GetEntities, use GetEntry instead
  • This version has an update to the tileset export app, and the command to run is changed. So follow these two steps:
    • Select your LDtk project file, and you will be able to install a newer version with the click of a button.
    • Copy the new command from the importer inspector, and paste it into your LDtk project settings and Re-save.

4.1.0

23 Oct 09:11
Compare
Choose a tag to compare

Additions

  • Added support for Aseprite files!
    • To allow the LDtk importer to load Aseprite files, install the Unity Aseprite Importer
      The Aseprite importer requires Unity 2021.3.15 or above
  • Added support for looping level backgrounds
    • Make the level's looping background pivot to the bottom left for perfect accuracy
  • Added support for individual tile alpha from LDtk 1.3.1
  • Added a LDtkIid for the LDtkJson root object from LDtk 1.2.0
  • Updated samples to 1.4.1

Quality of Life

  • Changed the icons for the imported Project/Level/Tileset to match with the icons from LDtk 1.5
  • Updated docs to instruct that a texture should be RGBA32 compression
  • Made the LDtkComponentLayer ordered before the LDtkIid component

Fixes

  • Fixed the slow load time to reset tilemap colliders in the scene after reimporting a tileset definition file
    • Added a notification in the scene view indicating how many tilemap colliders were reset, and how long it took
  • Fixed a bug where reordering IntGrid value definitions would use the wrong tile references, and in some cases, cause an exception
  • Fixed a deserialize exception when making a blank LDtk project whereby defaultEntityWidth and defaultEntityHeight are null when they shouldn't be
    • This is a temporary measure and LDtk will fix this problem for LDtk 1.5
  • Fixed a possible exception during initialization of LDtkFields
  • Added safety-check if a tileset definition's relPath was null or empty

Breaking Changes

  • Removed the "De-parent in Runtime" feature from the project importer
    • After much thought, the conclusion was that it's not the importer's job to handle this optimization, and has been removed in favor of less bloat.
    • To continue having this optimization in your game, set an important object's parent as null to reduce on hierarchy depth.