Hey there, I'm baffled at how hard it seems to handle memory correctly in Unity. The type of game I'm working on had me separate different assets in different prefabs, sounds, sprites, animations, etc. which I instantiate and destroy once I'm done using them. I'm fine with the performance of all the instantiation and I call GC.Collect every now and then. The problem I'm facing is that the memory used goes up and never goes down. I've been tracking the problem and the number of textures, materials and meshes in memory just keep growing, never being released from memory. I end up in a situation where, gradually, it's like I had loaded every resources in the first place. And of course it crashes before that. Since it's not a level based game, I load prefabs with the stuff I need while I need it and then destroy those prefabs. The problem is say I play the "Eat an apple" animation, I load the apple animations, sounds, sprites, etc and then I unload it, but the material with the apple sprite stays in memory, I can destroy the material instances that are created but the actual apple material will stay in memory as an asset that I can't destroy. So then I load the "play with barbie doll" assets, and again, the barbie material is loaded in memory, I can destroy instances copied from that base material but not the base material, etc, etc, etc I end up with all the materials/textures loaded in memory, never to be released. Anyone has experience with unloading materials, textures and meshes out of memory once they're not used anymore?