Loading many sprites at runtime
I am working on a project which contains 4 different characters, each with 6 different animation states. Each character has a different sprite for it's head, hat, glasses, shirt, torso, scarf, jacket etc (total of about 15 sprites per character on average). It has been done this way so that the player can choose which clothing items the character should wear, so I have decided to do the animations through code instead of using the Animator. In the Update loop, I change the sprites of a character after a number of frames, depending on the speed that I set the animation at. The problem is that every x frames I need to change all the 15 sprites of my character. The project requires between 90-500 characters to be shown at once, so that's about 1500 sprites that have to be changed. For quick prototyping I've chosen to load the new sprites using Resources.Load () and replace the sprite in this manner. There must be a better way to do this. Any suggestions? Would Asset Bundles help? Or is what I'm asking just too expensive for the processor? (It has to run on mobile devices). Can I somehow unload the sprite that I'm no longer using? I've also thought of loading all the animation sprites for a character at the start and pooling them, but then that means having all those sprites in memory at once.
Pooling is the way I would go. It should only be a few $$anonymous$$Bs per sprite, and if you add the same "packing tag" to all of them in the import settings, unity will auto atlas them for you.
Yep, already done all this and it works great on iOS but quite badly on Android. Any ideas as to why?
Your answer
![](https://koobas.hobune.stream/wayback/20220612084830im_/https://answers.unity.com/themes/thub/images/avi.jpg)