This is a major overhaul of the Unity side of the plugin, taking advantage of various new features Unity have added over the last few years. The main change is that the plugin no longer needs to generate .json files; but generally most parts of the plugin have been modernised and should be more efficient and robust.
Version 1 will only receive critical fixes from this point on.
Breaking Changes
This comes with some breaking changes to the Unity side of the API, although porting should only take a minute for most developers. See MIGRATION.md for more information.
Credit
This upgrade is built off the work originally done by @SHiLLySiT, as well as @reallyfancy and @ErnSur; most credit for implementing the new features goes to them. Big thanks from me and the Inkle team, and apologies it took me so long to resolve the final bits.
Changelog
• Ink files are now compiled by a Unity ScriptedImporter, replacing the old compile queue and its per-file .json output.
• .ink files import as an InkFile asset — no .json is generated. Reference InkFile and use new Story(inkFile.storyJson).
•
• Editing an include (even nested) now reliably reimports its master file(s).
• Errors, warnings and TODOs show on the import inspector and in the console.
• Ink file icons show state badges (error, warning, TODO, include) consistently in the Project window, inspector header and object fields.
• Builds now fail if any ink file has compile errors.
• Ink Player: load a story by assigning an InkFile (not a JSON TextAsset); tethered stories let you edit variables by default; the history-visibility filter and the auto-play controls are now compact popups.
• Ink Player: auto-play can use a fixed random seed to replay the exact same route — seeds both RANDOM()/shuffles and Auto-Choice.
• Editor inspectors and windows rebuilt with UI Toolkit.