Thats how Unity works. It loads all textures into memory when accessed, but only uploads to VRAM when first visible. The best bet is to force Unity to load everything - you can do this in the loading screen, etc, by creating a sprite from each of these collections in the background somewhere. You can even hide it behind the splash screen - all it needs is for Unity to draw it once, and the texture will then be loaded.