Not signed in
Copyright © 2026 Unity Technologies
Hey! I’m sorry the documentation is misleading on this. Resources.UnloadUnusedAssets is a tricky one, as it shouldn’t be officially supported in Addressables because of complexity with object tracking between systems. It does ‘just about’ work with certain asset types, but many other types (including textures) cannot be unloaded in this way. This mistake in the documentation is not something we were aware of, and we will be fixing that. The addressables loading system was originally designed to simplify loading of assets inside asset bundles, and automatically unload them when possible. The Addressables.Release API allows you to tell the system when an asset will no longer be used, and the system can automatically clean it up when all other assets loaded from that bundle are also released. Unfortunately this cannot unload assets where other assets from the same bundle are still in use, because Asset Bundles do not allow this. The workaround here is to lay out the asset bundles in a way that allows this, weighing up which assets are most commonly used together and the potential overhead of additional asset bundles. I understand this outcome is disappointing, and believe me, we are taking this feedback into account for future work for loading runtime content. But as this particular API is not supposed to work as such, we will close this bug as 'By Design' and fix the documentation. Please take further details of your usecase to our Roadmap so that we can prioritize this effectively: https://unity.com/roadmap/unity-platform/pipeline-integrations
Reproduction steps:
1. Open the attached “ASDQWE” project
2. Open the Addressables Groups Window (Asset Management > Addresables > Groups)
3. Select Build > New Build > Default Build Scripts
4. Open the Build Settings Window (File > Build Settings)
5. Check “Development Build” and “Autoconnect Profiler”
6. Press the “Build And Run” button
7. Open the Memory Profiler Window (Window > Analysis > Memory Profiler)
8. Inside the Player Window, press the “Space” button on your keyboard twice
9. Inside the Memory Profiler Window, press the “Capture” button and select the new Capture
10. Select the “Unity Objects” tab
11. In the Description, select Texture2D > TextureLarge
12. Observe the References tab
Expected result: "LargeTexture" is unloaded
Actual result: "LargeTexture" is still loaded, while being held only by "AssetBundle"
Reproducible with: 2022.3.1f1, 2023.1.0b18, 2023.2.0a16
Could not test with: 2020.3.48f1 (error CS8124: Tuple must contain at least two elements), 2021.3.26f1 (Required Memory Profiler features are not available)
Reproducible on: Intel MacOS 13.3.1
Sign in to see your voted issues