Repository navigation
Added
- Add
SpriteSettingsApplierAPI.TryApplyProfilesto batch-apply and save sprite importer profiles from scripts without opening the window (#821). - Add
TextureSettingsApplierAPI.TryApplyTextureSettingsto apply and save texture import settings from scripts without opening the window (#821). - Add
AnalyzerPolicyAPI.TrySetEnabledso editor scripts can enable or disable Unity Helpers analyzer policies without opening the window (#821). - Add
ScriptableSpriteAtlasGenerator.TryCreateConfigandTrySetSourceTexturesUncompressedto create atlas configs and manage source sprite import settings without opening the window (#821). - Add
DisposableScopefor allocation-freeusingcleanup with copy-safe, reverse-order disposal (#875). - Add
SpriteSettingsApplierAPI.TrySaveProfilesandTryLoadProfilesso editor scripts can persist sprite settings without opening the window, with explicit overwrite and independent profile copies (#862). - Add
UnityMethodAnalyzerReportExportAPIso editor scripts can save Markdown and JSON findings with compiler coverage status without opening the window (#861). - Add
ValidationReportExportAPIso editor scripts can write Sentinel JSON and JUnit reports from a validation run without opening the workspace (#821). - Add
SpriteSheetAnimationAPI.TryCreateso editor scripts can preview or create sprite sheet animation clips from ordered frames without opening the window (#821). - Add
SpriteSheetAnimationAPI.TryDiscoverFramesso editor scripts can load ordered sprite frames and choose whether to update import settings without opening the window (#821). - Add
AnimationClipFrameSaveAPI.TrySaveFramesso editor scripts can save sprite frames and FPS to an existing clip without opening the window. See Sprite Animation Editor (#851). - Add
PrefabChecker.ScanFoldersso editor scripts can inspect prefab findings from explicit folders and options without opening the window (#821). - Add
PrefabChecker.TryRemoveMissingScriptsso editor scripts can preview or repair missing script slots in prefabs without opening the window (#821). - Add
TextureResizerAPI.TryResizeTexturesso editor scripts can resize or preview PNGs from explicit textures and asset folders without opening the window. Textures process in natural name order (#821). - Add an encoding-aware
DurableFile.TryWriteAllTextoverload that preserves the encoding's byte order mark for staged writes.
Fixed
- Fix sprite atlas generation losing unsaved config sprite entries while creating an atlas asset (#821).
- Fix the Sprite Atlas Generator's Force Uncompressed action so its default-platform compression setting stays uncompressed after reimport (#821).
- Fix editor folder discovery and atlas generation so paths with Windows separators work from scripts and batch mode (#821).
- Fix
DurableFileownership so append, create, and delete operations cannot change a destination during a staged write; competing operations also report failure without crashing Windows IL2CPP players (#871). - Fix Image Blur and Sprite Sheet Extractor output publication so a competing staged-file writer cannot change the destination during publication (#871).
- Fix Sprite Sheet Animation Creator so declining an import-settings prompt leaves the texture importer unchanged (#821).
- Fix Texture Resizer batch calls so whitespace-only source folder entries are ignored like empty entries (#867).
- Fix cached package path conversion so blank package IDs return no path (#867).
- Fix Sentinel validation runs so targets with whitespace-only GUIDs or asset paths are skipped (#867).
- Ignore whitespace-only file paths in Unity Method Analyzer source selection, compiler messages, navigation, and report export (#867).
- Fix
SpriteRendererMetadataso material copies are released after replacement, pop, or destruction, and moving the top material to the back restores the prior top (#855). - Fix Sprite Cropper padding so borderless sprites stay borderless and larger outputs retain their full resolution (#857).
- Fix competing Sentinel suppression edits and Undo so a stale action reports a conflict instead of replacing another action's decisions (#817).
- Fix prefab validation Undo and stale-key repair rollback so they reject observed byte changes before restoring a snapshot; competing staged-replacement
DurableFilewriters share the check's lock (#817, #827). - Fix animation creation APIs to return the created asset path when saving fails after Unity creates the clip (#821).
- Fix Image Blur and Sprite Sheet Extractor new image publication so readers see complete outputs and competing publishers preserve the first file (#827).
- Fix the Sprite Animation Editor's Preview FPS field on Unity 2021.3 so its window opens correctly (#851).
- Fix Sprite Animation Editor saves for clips with multiple sprite bindings so frames from other bindings are not written into the selected curve (#851).
- Fix Odin Migration menu placement under Tools > Wallstop Studios > Unity Helpers (#849).
- Fix JSON
Typevalues and pool type settings to recover constructed generics after unique component assembly moves (#846). - Fix
SerializableTypereferences to constructed generic types after their component types move between assemblies (#845). - Fix Texture Resizer so it rejects invalid sizing settings and colliding output names before changing source, importer, or destination files (#821).
- Fix Test Run Reporter summary claims so one run owns a marker and a stale callback cannot replace or delete a newer run (#827).
- Fix concurrent processes publishing another
DurableFilewriter's staged bytes. A competing writer now fails while the first owns the stage (#838). - Stage subtype manifests, exported proto schemas, and sprite or animation configs before replacement so failed staging leaves the previous file intact (#827).
- Stage original asset bytes before stale-key repair rollback and prefab validation undo, so failed staging does not truncate the asset (#827).
- Keep issue template version choices stable across local hooks and release preparation by rendering both forms from a tracked version manifest.
- Fix asset change detection warnings caused by deserializing imported assets while checking for matching sub-assets. Sprite and nested asset watchers still receive matching paths (#834).
- Fix
FileHelper.InitializePathto returnfalsefor invalid paths and directory failures while preserving existing files. See File Operations (#827).
Improved
- Improve tuple-to-coroutine adapters by removing extra callback allocations (#781).
- Improve Sprite Cropper scan speed for images of at least one million pixels (#782).
- Improve
JesseSorton large, sustained random-looking inputs with a direct-sort route while retaining pile merging for structured runs (#747). - Improve subset sampling from queues and hash sets by copying each source once (#781).
- Improve loading of missing
SerializableTypereferences without building the type-picker catalog (#783).
Install
- Import the attached
.unitypackageinto a Unity project, or - install
com.wallstop-studios.unity-helpers@3.6.2from npm / OpenUPM through Unity Package Manager.
The release includes the npm tarball and the .unitypackage, each with a .sha256 checksum.