Does resources folder really load all assets in memory at the startup?

I read everywhere that if you use the resources folder then all assets in it loaded at the startup, but I tried and tested it with a profiler and didn’t see this. Only assets that I called with Resources.Load() are loaded into the memory. How Resources folder work exactly?

Where is this ‘everywhere’?

For example -

I think that is a misunderstanding. AFAIK the Resources bundle doesn’t get loaded at startup in its entirety. Only the indexing part. Which can be a big one if you’re storing a lot of assets in the Resources folders.
You still need to load your resources into memory when you need it. All tests made throughout the years point this way.
More info here.

And finally: forget Resources, use Addressables. Much more controllable and much more convenient system once you understand what it’s doing and how you can put it into good use.

Also invoking @MartinTilo maybe he has some more deep knowledge about this and I am misunderstanding something.

2 Likes

Thank you for the reply. I’m learning how to use addressables right now, actually, this was the reason why I started researching memory management and stumbled with this.

Nah, I was slightly mistaken back then. Thanks for pointing that out, I’ve corrected the post to avoid creating further confusion. I believe in the case of that other thread the issue was more likely to be down to the rather indirect control over when and what gets loaded into memory from the Resources folder and when that gets unloaded again. Where the content of the Resources folder ALWAYS has an impact in it’s entirety is the build time and size as all assets are always included in the build, even if not used, because Unity can’t determine at build time if they would be used or not.

5 Likes