I worked on a texture pack system for my upcoming game and I thought I was done with it after making the menu for it, where the player is able to change them, when he acquired enough medals.
When I built the game and tested the texture pack system for the first time in the real game, I found out the hard way that my system doesn’t really work correctly.
The way my implementation “worked” (atleast while in Unity):
ScriptableObject TexturePack that has all the Sprites for the different Prefabs in the gameTexturePackManager, that has all the prefabs in the game and an instance of the currentTexturePack
To change the Texturepack, all the script did was change the Prefabs sprites to the ones from the currentTexturePacks ScriptableObject and reload the scene and it would display the changes correctly, because the changes to the prefabs in the editor persisted. But when I tried it in the .exe it didn’t work and after reloading the scene it’s just back to the base texture pack.
Are there any ways that come to mind for you to actually make a good texture pack system in Unity?
The only way I can come up with is to just to change every sprite at the start of the stage, which hurts me to think about because I just reload the scene every time the player restarts and I don’t want to load 100+ sprites at the start of each level. I mean I guess it would work and probably be performant enough, but the idea is terrible and surely there has to be a better way.