Why is asset still loaded even if set as Addressable and not explicitly loaded

I have an asset, say a PNG sprite, it is used in a game object, I set both the PNG file and the game object as addressable, I created a group and assigned the two adddresable asset to it.

I lunched the game, without explicitly loading the addresable asset thru code/script, it is still loaded in the game.

Why is this? I thought that addressable asset is for it to be modularized, does Unity loads the addressable when it is needed or does it load it during loading of the scene?

Are you directly referencing said assets or have the assets in a loaded scene?

An asset being addressable just means its built into your addressables groups (think asset bundles), and can be loaded via them.

If you plonk said addressable asset into a scene it’ll be loaded just like any other asset. Same as if you directly reference said assets by anything else in a scene; they’ll be loaded into memory too, irrespective of their addressable status.

And if the scene isn’t addressable, those assets directly in scenes will be duplicated; one in the scene, one in your addressables bundles.

I did this exact thing. If you reference anything in scene it will load, i had 1 image that was set on a prefab, and it always loaded faster than the rest of my addressables and couldnt figure out why. Check your scenes and prefabs for references to your addressables.

You can check if you have duplicate assets between the player and addressables through some tooling we provide in the Analyze rules: Analyze tool | Addressables | 1.20.5 This can tell you what is in both Addressables and PlayerScene and Resources.

3 Likes