Update 3.0.0


New major update! (3.0.0)
This update contains many new compatibilities, fixes, and features to match with LDtk's new 1.0 major update: "Gone Gold!"
You can download it from the Unity package manager.

Features

- LDtk 1.0 JSON compatibility
- Added support for the two new fields: Entity Reference and Tile!
  - Entity references will appear as GameObject fields, but are internally a string iid
    - Entity fields are drawn in the scene! (also new toggle option in the preferences to turn on/off)
  - Tile reference is a sprite field. Tiles are also visually readable in the LDtkFields inspector
- Added support for the new Multi-worlds
  - A new World GameObject is inserted into the import hierarchy. See breaking changes below.  
  - LDtk only allows one world currently, but multiple worlds will come in the next updates.

- Added a scene view window to change the visibility and pick-ability for levels with differing worldDepth
- Added many new API functionality
  - New extended json functions for 1.0 
- Added new functionality to LDtkFields
  - Nullable fields can be toggled null in the inspector 
  - All nullable fields can be checked if null from code
  - Added a TryGet function for every existing field type
  - Added functions to get any field as a string type
  - Added various other helpful functions
- Added two new buttons into the preferences GUI to enable or disable all scene drawers
- Added a new header to the start of autogenerated enum scripts
- Updated the Newtonsoft Json package to 3.0.1
- Many new edits and content to documentation

Changes

- Point fields drawn in the scene now have their new zig-zag style like in LDtk
- Multilines fields in the LDtkFields inspector are now drawn as a TextArea to show more lines
- Import interface events will now execute at the end of the entire import process instead of after the individual entity/level's creation, resulting in more consistent access to objects outside of the respective component.
- Improved performance when executing events for classes inheriting from LDtkPostProcessor
- Tweaked the coloring for the level's identifier label

Fixes

- Fixed a bug where the importer inspector would still display error UI even after the import issue was already resolved
- Fixed an import bug when an enum definition would be named like other types, such as Color, Point, etc.
- Fixed an issue in the project importer where assigned intGrid values or entities would shift indexes when deleting them in LDtk
- Fixed an issue in the project importer where newly introduced IntGrid values or entities would copy the same object as the last used one
- Fixed an issue where override tilesets were not being used for tile layers
- Fixed all previous potential crashes related to packing sprite atlases in older unity versions, and also resulted in quicker sprite packing speed
- Fixed a new issue where LDtk 1.0 levels with a world layout of LinearHorizontal or LinearVertical would have world positions of (-1, -1). Levels will position properly like in 0.9.3
- Many other minor tweaks and fixes

Breaking Changes 

- LDtk 0.9.3 projects are now incompatible with the importer. Save your project in LDtk to upgrade it to 1.0 so it can be imported properly.  
- A new "World" GameObject is inserted into the import hierarchy, even if multiple-worlds aren't used. This may affect your current GameObject hierarchy traversal, so refactor accordingly.
- Worlds, Levels, Layers and Entities will have their GameObject names include their iid.  This is to maintain hierarchy uniqueness, as required by Unity's import pipeline.
- Various public APIs were added, changed, or deleted. Understand that there are many major changes in this version, and be prepared to correct them.
- Null Point fields have changed their value from Vector2.negativeInfinity to Vector2.zero, since they can now be checked if the field is null.
- Removed the initial Null value for every autogenerated enum. This may shift indexes.

Get LDtk to Unity

Comments

Log in with itch.io to leave a comment.

Woot!