Quick Asset Audit Pro
Krykftn | Advanced Editor Tools & Systems
$10.99
$27.49
60%OFF
(no ratings)
Jump AssetStore
Find the assets your project carries and nothing uses, with the evidence for every verdict - and an honest "cannot tell" for anything a string in your code could still reach.Works in any render pipeline. The tool is editor-only and never renders anything: it reads the asset database, the build settings and your scripts, and produces a report. Nothing is moved, renamed, reimported or deleted, and no import setting is changed.There is a texture in your project from an event that ended two years ago. No scene references it, no prefab references it, and nobody remembers. Multiply that by a few hundred files and you have a repository nobody wants to clean, because being wrong once means a missing sprite in a build, on a device, with no error to point at.Every "find unused assets" tool answers the easy half of that question. This one is built around the dangerous half.FOUR ANSWERS, NOT ONE• ORPHAN - nothing references it, no project setting points at it, and no string in any script could name it• BY NAME - code can reach it without a reference, so it cannot be called dead; the row says how• NOT SHIPPED - referenced, but nothing a player build uses reaches it• IN BUILD - referenced, and a build carries itAnd a separate flag, SHIPS ANYWAY, for the worst case there is: an asset nothing uses that sits in a Resources folder, so every player build you make carries it regardless.WHAT COUNTS AS A USEThe dependency graph is only the start. The scenes in your build settings, the render pipeline and quality levels, icons and splash images, always-included shaders and the config objects packages keep in the build settings are all uses, and so are Addressables group entries and shader #include files. Without them a tool calls your render pipeline asset an orphan: measured on Unity 6's URP template, our own version 1.0.1 did exactly that, and reported the template's only scene as dead weight.THE LINE NO DEPENDENCY GRAPH CAN SEEvar icon = Resources.Load("LeafIcon");LeafIcon is referenced by nothing. A dependency graph says it is dead, and deleting it breaks the game at runtime with no compile error to warn you. This tool reads every script, yours and the packages', for the strings a graph cannot see, and reports the icon as undecidable instead.That covers Resources.Load, LoadAll and LoadAsync keys (written out or held in a const, and matched without case, as Unity does), string literals that end in an asset's path, Shader.Find names, TextMesh Pro's rich-text folders, and the folders Unity reads by name: StreamingAssets, Editor Default Resources and Gizmos. When a call in your scripts builds its Resources key at runtime, the report says how many such calls exist and treats everything under Resources as undecidable, because no scan can resolve a string that does not exist yet.Comments are blanked out before that check runs. One sentence in a comment that merely mentions Resources.Load would otherwise make your whole Resources folder undecidable, and a report that says "I cannot tell" about everything is worth nothing.EVERY ROW CARRIES ITS EVIDENCEA verdict you cannot check is a guess. Open any row and the exact assets and settings that reference it are listed, each one a click away, with the reason code can reach it by name. Filter by verdict, by kind, by size or by text, and export the whole report as CSV, including the rows the window truncates.THE SAME PICTURE, SAVED TWICETwo exports of the same artwork rarely share a single byte - a different compression level is enough to change every one of them. Hashing files finds only the easy half. PNG and JPG images are decoded and their pixels and size are hashed, so the same picture is found however it was saved; other formats are compared by their bytes. The sample ships a pair that proves it: two files with no bytes in common and identical pixels.Decoding reads the file directly, so the importer's Read/Write flag is never touched and no import setting changes.SPEED, MEASUREDReading package scripts is most of the work. On a Unity 6 URP project with 1594 assets - 1000 textures, 250 prefabs, 10 scenes, 7 of them in the build settings - and 6719 package scripts, the scan took 3.1 seconds the first time and 1.8 seconds after that. It runs in 16 ms slices from the editor's update loop rather than one blocking pass, so the window keeps drawing, the progress bar moves and Cancel works at any moment. No modal dialog, no frozen editor.NOTHING IS CHANGEDThe scan reads. It does not move, rename, reimport or delete anything, and it never changes an import setting. Acting on the report is your decision and your keystroke.REQUIREMENTS• Unity 2022.3 LTS or newer (tested on 2022.3 and Unity 6)• No external dependencies, no accounts, no plugins• Any render pipeline; the tool never renders anythingHONEST LIMITSA string this tool cannot see is a string it cannot follow. Keys assembled at runtime, keys read from a data file, asset names from a server and names used by precompiled code are invisible to any static scan. Scripts, assembly definitions and native plugins are not judged, because the compiler, not the asset graph, knows whether they are used. Assets an editor window finds by type, such as scene templates, read as orphans.Features:• Reverse dependency index: every asset lists the assets and settings that reference it, with a click to select each one• Four verdicts - ORPHAN, BY NAME, NOT SHIPPED, IN BUILD - plus a SHIPS ANYWAY flag for dead weight in Resources folders• Build scenes, project settings (render pipeline, quality, icons, config objects), Addressables groups and shader #include files count as uses• Name scanning of your scripts and package scripts: Resources keys (written out or in a const, case-insensitive), path literals, Shader.Find names and TextMesh Pro rich-text folders• Comments blanked before the dynamic-call check, so a comment cannot make a whole folder undecidable• Duplicate images grouped by decoded pixels and size (PNG, JPG) or by file bytes (other formats), with the recoverable size per group• Stepped scan in 16 ms slices with in-window progress and Cancel; 1594 assets and 6719 package scripts in 1.8 s (3.1 s the first time)• Filters by verdict, kind, size and text; CSV export of the complete reportSupported OS: Windows, macOS, LinuxTechnical notes:• Namespaced under Krykftn.QuickAssetAuditPro, editor-only assembly definition• Read-only: nothing is moved, renamed, reimported or deleted, and no import setting is changed• Image decoding reads the file directly, so the importer's Read/Write flag is never touched• Scripts, assembly definitions and native plugins are not judged; the summary says how many were left out• Works in any render pipeline; the tool never renders anything• Unity 2022.3 LTS or newer (tested on 2022.3.62f2 and 6000.3.12f1), no external dependencies• Documentation: included as README.mdAI assistance was used while making this package, and here is exactly where.Code: an AI coding assistant helped write and review the C# source. Every line was compiled and exercised in the Unity Editor by me before submission, including runs against the cases that break naive tools - assets reached only by a string at runtime, and near-identical images that differ in file size but not in decoded pixels.Text: the README, the in-window help and this store description were drafted with AI assistance and then edited by hand for accuracy.Images: no image generator was used anywhere. Every screenshot is a real capture of this tool running in the Unity Editor with a real project loaded, and the figures visible in them (734 assets scanned, 15.0 MB orphaned, 215 not shipped, 13 reachable by name, 0.8 s scan) are that run's actual output. The key image, card and social image are original graphics drawn in code for this package, not screenshots and not stock artwork.Nothing in the package generates content at runtime. It is a static analysis tool: it reads the project's own dependency data and source files, and reports only what it can prove, saying "cannot tell" where it cannot.




