- Home /
Resources.UnloadUnusedAssets() doesn't always work. How can I find out why?
Hi,
So I've hit that point in my Unity programming development where I've come to realise that assets don't get unloaded when you destroy everything that uses them, or clear all the references to them. So, that was a surprise.
Anyway, I've added a bunch of code to remove the unwanted assets (looking primarily at textures/atlases which are used by NGUI), being suitably diligent about waiting a couple of frames between destroying objects and/or nulling references and calling UnloadUnusedAssets() because of NGUI's quirk of keeping references about for longer than you think it does. All of my changes have helped, but there are a couple of textures that resolutely refuse to be cleaned up. They show up in the memory profiler. I'd like to know how to find out WHY they show up in the memory profiler.
How can I find out which components in the scene reference these texture assets, when running on an iOS device? Is there some kind of runtime script which can tell me something like what you get in the editor with "Find References in Scene"? Is there any way I can get any more information about why certain things are holding references even though it appears as though their references have been changed, or set to null?
Your answer
![](https://koobas.hobune.stream/wayback/20220613114314im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Assets not unloading on scene change in Android (works on iOS) 1 Answer
Creating multiple assets from the same texture 0 Answers
Prefab Sharing Textures 1 Answer
Memory usage in xcode does not equal to the number in unity profiler 0 Answers
Help stopping texturing one model in editor from texturing all models loaded into project? 1 Answer