# Unused Assets Finder

Clean your Unity project with speed and ease

![](/files/-MIWITtRshRy3S7QKRX9)

Unused Assets Finder does what it says on the tin.

This fast, reliable and customizable plugin allows you to find, export and remove unused assets WITHOUT relying on a build to find what assets are not used.

[Website](https://www.unusedassetsfinder.com) | [Readme](https://www.unusedassetsfinder.com/documentation/readme) | [Changelog](https://www.unusedassetsfinder.com/documentation/changelog)

**Features**

* Create a Rule Set, which allows you to filter your search to only find unused assets that fit your criteria. For example, only finding .fbx files.
* Async code, so it's super fast
* Works on Unity versions 2017.1 and above

Once all unused assets are found, the results are displayed in a familiar way, mimicking the export package window, which has a search bar so you can search results for specific files.

The Unused Assets Finder will remove any empty folders while exporting your assets, keeping your project tidy and uncluttered.

**Compatible with**

* PlayMaker
* Dynamic Bone
* Easy Mobile Pro

**Report Issues / Suggesting Features**

[We're committed into fixing bugs and issues as soon as we can and also hearing what features you'd like to see! Feel free to tell us by submitting an issue and we'll get back to you as soon as we can](https://bitbucket.org/UnusedAssets/unusedassetsplugin/issues?status=new\&status=open)

**Notes**\
This requires the .Net 4.x Scripting Runtime to work


# ReadMe / Documentation

## How to open the Unused Assets Finder Window

![](/files/-MIWCJBxHfo3ZwExz85a)

## **Navigating the Unused Assets Finder window before a scan**

![](/files/-MIWB3dhEIOTZ2iMgiWy)

| **Label** | Item                          | Description                                                                                                                                              |
| --------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **1**     | **Find Unused Assets Button** | This will start a scan and find all unused assets within your project                                                                                    |
| **2**     | **Rule Set Object Field**     | This object field will use the Rule Set placed within it to perform the scan with. If the object field is null or empty, a default Rule Set will be used |

## **Navigating the Unused Assets Finder Window before a scan**

![](/files/-MIWCEPvgxxFHwA0RMwM)

| **Label** | Item                                | Description                                                                                         |
| --------- | ----------------------------------- | --------------------------------------------------------------------------------------------------- |
| **1**     | **Search Bar**                      | Search through the results of a scan for specific files either by name or extension.                |
| **2**     | **Tree View**                       | Tree view that displays the scan results in a similar way to the Unity Import/Export package window |
| **3**     | **Column Sorting**                  | Sorts the columns by name or file size                                                              |
| **4**     | **Expand All Button**               | Expands the Tree View fully to see all folders and files                                            |
| **5**     | **Collapse All Button**             | Collapses the Tree View to hide all folders and files, except the root “Assets” folder              |
| **6**     | **Select All Button**               | Selects all the results marking them for exporting and then deletion                                |
| **7**     | **Deselect All Button**             | Deselects all the results marking them not for exporting and deletion                               |
| **8**     | **Export & Delete Selected Button** | Starts to export then delete all assets selected                                                    |

## Rule Set Inspector

![](/files/-MIWCJBz28lb3hkBnHMT)

| Label | Item                                            | Description                                                                                                                                                                                                                               |
| ----- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **1** | **Extensions To Exclude**                       | If a file ends with an extension in the list, the file will not be included in the scan results                                                                                                                                           |
| **2** | **Ignore Assets In Specifically Named Folders** | If an asset is in a folder with the same name as one in the list, then it is ignored. This is mainly used for ignoring special Unity folders like **`Resources`** or **`Plugins`**                                                        |
| **3** | **Exclude Specific Assets and Folders**         | This is for specific files and folders that should not be included in the scan results. If a folder is in the list, all assets inside the folder and its subfolders are removed from the scan results, along with each asset’s dependency |
| **4** | **Names Of Asset Bundles To Include In Search** | Assets in each asset bundle listed will be added to the search                                                                                                                                                                            |
| **5** | **Prune Empty and Duplicate Entries**           | This removes duplicate entries and cleans up the lists                                                                                                                                                                                    |

## **Preferences Window**

![](/files/-MIWCJByn3FinQC0IG5P)

| **Label** | Item                                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| --------- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **1**     | **Dock Next To A Given Window Checkbox** | When this is enabled, the main Unused Assets Finder editor window will dock next to the first open window it finds                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **2**     | **Editor Windows to Dock Next To List**  | <p>This is a list where you can enter the names of another editor window for the Unused Assets Finder editor window to dock next to. The Unused Assets Finder editor window will attempt to dock next to the first item in the list if the window is open. If the editor window is not open, it will proceed to the next and so on until the list is exhausted at which point it will create an un-docked version of the window which you can then drag into the desired place<br></p><p>Built-in Unity editor windows have unique names and some of the most common ones are listed below:</p><ul><li>Inspector: <strong><code>UnityEditor.InspectorWindow</code></strong></li><li>Project: <strong><code>UnityEditor.ProjectBrowser</code></strong></li><li>Hierarchy: <strong><code>UnityEditor.SceneHierarchyWindow</code></strong></li><li>Scene: <strong><code>UnityEditor.SceneView</code></strong></li><li>Game: <strong><code>UnityEditor.GameView</code></strong></li><li>Console: <strong><code>UnityEditor.ConsoleWindow</code></strong></li></ul> |
| **3**     | **Add All Editor Windows Button**        | If the editor window you desire to dock the plugin isn’t listed above, you can press this button to print a list of all built-in Unity editor window type names to the console and then you can add it to the list. Then you can simply delete the windows you do not want it to dock next to and leave just the ones you do and reorder them to suit your needs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |


# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

### \[1.3.1] - 2021-08-07

#### Added

* Added more error checking when trying to delete a file
* Added more error checking when trying to calculate the file size of all found unused assets

### \[1.3.0] - 2020-09-30

**Added**

* Added a `package.json` so that the plugin can be treated as a package in the Package Manager
* Added `private` to methods and variables that don't explicitly define the scope
* Added a new popup prompt that asks for the `AssetSerialisationMode` to be changed to `ForceText` if not already `ForceText`
  * This allows all assets assigned in the `ProjectSettings` to be found during the scan
* Added new extensions to ignore by default
  * .xib - Xcode Interface Builder
  * .storyboard - iOS native splash screen
* Added a system that helps with organising the plugin files when you update from one version to another

**Removed**

* Removed the stopwatch that times how long a scan takes
* Removed some extension methods that were duplicates of some LINQ queries
* Removed the Import and Exporting of Rule Sets
* Removed the shortcut to remove empty folders

**Fixed**

* Fixed some of the popup prompts that asked for an option having the buttons the wrong way around
* Fixed the stats of the search not showing in Unity 2019.1 and above

**Changed**

* Changed all instances of "Unused Assets" to "Unused Assets Finder"
* Changed the project structure so all the code is in the editor folder
* Scanning for unused assets without providing a rule set now uses a default rule set that is created in memory and is not saved to the resources folder
* Any assets assigned in any ProjectSettings related tab are now found, but this needs the asset serialisation mode to be Force Text
* Split up `Strings.cs` so that it's more manageable
* Made the export of assets async which cleans up the code around that area and makes it faster
* The check for scenes that would be deleted is now done at the very start of a scan
* The check for special Unity folders that would possibly be found is now done at the start of the scan
* The version number is now a `Version` object and not a string

### \[1.**2.1**] - 2019-10-05

**Added**

* Added more extensions to ignore by default
  * `.pri` - Universal Windows Platform

**Removed**

* Removed font file extensions from the default list of extensions to ignore as they are detected if they are being used or not

**Changed**

* Made deletion of assets faster

### \[1.**2.0**] - 2019-09-17

**Added**

* Added even more extensions to ignore by default
  * `.shadervarients`
  * `.compute` - Compute shaders
  * `.hlsl` - Shaders
  * `.tff` - Font file
  * `.ttf` - Font file
  * `.preset` - Component presets
  * `.asmdef` - Assembly definitions
  * `.spriteatlas` - Sprite atlas
  * `.modulemap` - iOS Swift Framework
  * `.jslib` -  WebGL Javascript
  * `.projmod` - Xcode project file&#x20;
  * `.rsp` - C# compiler response file - Used to reference unreferenced DLL's
* Added even more places to look for assets, this includes project settings
* Added a Report Issue menu item (Tools → Unused Assets → Report Issue) that will open up a browser and direct you to the page to submit a new issue
* Even more comments on our code
* Watches for assets that have been moved from the project from outside of Unity
* Added Assembly Definitions for those who use them
* The plugin now removes its own depreciated files, so upgrading should be a lot more seamless
* Confirmed support for additive scenes e.g. Scenes loaded in scenes

**Removed**

* Removed our custom define symbols, didn’t really work out like we wanted
* Removed scenes in packages from triggering the unused scenes found dialog

**Fixed**

* Saved the loaded scene if it’s dirty before a scan, this ensures that all changes are saved so we know for sure what’s being used
* Limited the number of scenes listed in the unused scene dialogs, this stops the dialog becoming so tall the buttons are offscreen
* Fixed some cases after the export and deletion process the externally changed files watcher would display the dialog about files being deleted. The same thing applies to when empty folders are deleted
* Fixed edge case where only the root assets folder would be ticked and an error appear in the console when the select all button was pressed after the first scan after the project was opened or the plugin window opened
* Removed Tile Palettes used by the editor from the search, these assets are loaded indirectly so they always marked as unused, but in fact, causes issues if an existing tilemap needs to be edited

**Changed**

* Organised the context menus, now things are a bit cleaner

### \[1.**1**.2] - 2019-06-04

**Fixed**

* Fixed errors in `UnusedAssetsSettingsProvider.cs` in 2018.1 and 2018.2.
* Fixed errors in `UnusedAssets.cs` caused by enabled define symbols for build modules/targets. Which block the editor scripts from compiling which would run and disable the define symbols, removing the errors. We solved the chicken and the egg problem but in Unity. Also added a menu button that should also fix the errors in case it doesn’t automatically run.
* Fixed `.gitignore` entry generation.

### \[1.**1**.1] - 2019-06-03

#### Fixed

* Fixed unprotected call to `AssetDatabase` in Strings.cs that caused errors on compiling.

### \[1.**1**.0] - 2019-06-02

#### Added

* Added new plugin preferences menu to allow the plugin editor window to be automatically docked next to a user-defined list of other editor windows if they are open.
* Added build module support to account for users not having specific build modules (e.g. Android or iOS modules) installed.
* Created an editor script that detects if a `.gitignore` file currently exists and if it does adds an ignore for the plugin directory and demo directory. If no existing `.gitignore` is found then a new one is created with the same outcome.
* Added in the plugin version number to the bottom bar of the plugin editor window.
* New extensions being ignored automatically:
  * `.spriteatlas` - Unity Sprite Atlas
  * `.pom` - Android Plugin File
  * `.srcaar` - Android Plugin File
  * `.xml` - AndroidManifest.xml
  * `.json` - Common file format used by plugins
  * `.plist` - iOS Plugin File

**Removed**

* Tree Elements displayed in the tree view that get returned during a search query now appear in their parent and child hierarchy structure similar to when not returning search query results.
* Removed ability to skip backup exporting of files to a package before deleting - better to be safe than sorry.
* Removed the hard-coded resource path for the default ruleset.

**Fixed**

* Tree Elements displayed in the tree view that get returned during a search query now appear in their parent and child hierarchy structure similar to when not returning search query results.
* Fixed multicolumn header sorting.
* Fixed some assets in the project settings not being ignored.

**Changed**

* Refactored the tree view code to improve its functionality.
* Any empty folders left after the plugin cleans the project are now deleted.
* Changed default export file name from ‘Game Name Date’ to ‘Game Name Unused Assets Date’.
* Invalidated the search query if a file was deleted from the project outside of the plugin - either through the Unity Project window or through system file explorer
* Renamed editor namespace to `UnusedAssets.Editor`.
* Replaced ‘Things to Include’ and ‘Things to Exclude’ string lists with a single generic object list called ‘Exclude Specific Assets and Folders’ which supports, files, folders, and any other object inherited from `UnityEngine.Object`.
* Confirmed working with nested prefabs.

### \[1.0.0] - 2018-04-12

#### Added

* This is the first release! Hopefully, there aren’t any more fixing bugs.


# Refund Policy

This refund policy has been shamelessly stolen from [Cleaverous](https://lanefox.gitbook.io/cleverous/refund-policy)

## Refunds

It is very important that everyone read the details of the Unity Asset Store EULA's policy for refunds and not be confused by the appearance of the 'refund banner' on product pages:

> "All sales are final and there shall be no refunds except as expressly provided in this EULA or as required by law."

&#x20;\- [Unity Asset Store EULA](https://unity3d.com/legal/as_terms)

Refunds are actually possible, but only in very finite cases. The Asset Store most certainly **does not support** a *'try before you buy'* or *'take it back if you don't like it'* philosophy. The EULA is actually straightforward on refund terms. Users may request a refund from us under these circumstances.

* It was purchased less than 2 weeks ago and...
* The asset **does not work** on the version of Unity that it is published for.
* Including illegal content is also grounds - but we do not publish any content illegally so it is moot.

Since our products all work great on the published version and we maintain them well, there are effectively no valid refund claims. If you have an issue with a product then we are happy to help with it via our various support channels!

If you have a real bug report or find a core problem, please let us know by either [**contacting us on Discord**](https://discord.com/invite/YXSHepv) or [**creating a new issue!**](https://bitbucket.org/UnusedAssets/unusedassetsplugin/issues/new) We're committed to publishing good products and your hands on experience with our products makes your feedback very valuable and appreciated!

## Additional Notes

{% hint style="info" %}
To be clear, publishers are not required to support the latest Unity version and the "latest Unity version" is the most recent LTS build - not any alpha, beta or other release. If something is broken because you are using a beta/alpha build then it is not a supported scenario.
{% endhint %}

{% hint style="success" %}
If your project is **version locked** and the asset doesn't work on your version - and you *can provide proof that your studio did not do their due diligence* in reading the asset page and requirements then we will consider issuing a courtesy refund.
{% endhint %}

{% hint style="warning" %}
**We do not** issue coupons, vouchers, or otherwise distribute free copies of our assets to individuals under any circumstances. If you are an educator, enterprise, or verifiable influencer with sufficient notoriety please get in touch via Email or Discord.
{% endhint %}

{% hint style="danger" %}
Be aware that **Hostile reviews** - which are becoming increasingly prevalent - will be reported and that Unity actively takes action against accounts abusing or threatening to abuse the review system. Attempts at review-blackmail in order to coerce a refund from a Publisher or to obtain free assets could result in actions against your account from the platform (UAS).
{% endhint %}


# About Us


