Unity's Asset Loading Logic

I was wondering if anyone has some insight into how Unity’s asset loading logic works. While profiling and optimizing my game, I’m finding that many assets are loaded into memory at unexpected times, which is contributing to longer load times.

For example, I have an instance where a texture is used in a prefab, and that prefab is referenced by a game object in my scene. When I start the scene, that texture is loaded into memory. If I remove that texture reference from the prefab, the texture is not loaded when I start the scene.

I had thought that the texture would only be loaded into memory when the prefab was actually instantiated, not just because the prefab was referenced. Is that not the case? The ultimate goal is to only load the bare minimum assets on startup of the scene (and thereby reduce scene load time), and then load other assets on-the-fly as needed.

For my understanding , if you make a reference to an object / prefab in a script you can access it via script → the resource have to be loaded.

Ah, I was afraid of that, but I guess it makes sense. Thanks for confirming!