Solving fundamental problems (White Label)

Hi community,

me and my team are facing a challenge, that we need to solve with Addressables. These fundamental things are what we are trying to achieve:

  • White Label Product (different appearances on different builds)
  • Remote Asset loading (shipping a small, empty app to the appstore)
  • Keeping in-editor preview for building the app (not having an empty app while editing)

We have no experience whatsoever with Addressables yet, how would one solve these challenges?

I’m having a very hard time configuring the Addressables system. The sheer amount of configuration files that even come with an empty project is overwhelming.
What I’ve done so far is:

  • Created 2 additional Addressables Groups. One for each appearance (skin)
  • Created 2 Labels. One for each skin
  • Marked two folders as addressable which each contain the same set of images (different images for different skins)
  • Created a Script component that sets the Addressable string on every sibling Image component depending the global “Skin Setting”

But what are even the groups for? They seem to have no function, the group settings location is set in the profiles, so this all feels redundant.

When trying to figure out the Address the next problem appears: Selecting the folder as addressable (prefered) the file endings are added. But the endings can vary. How should we know which is .png and .jpg for example? Instead of loading “Skin1/Background” we would have to know its ending.
Setting every item manually addressable is error-prone and tedious, and you have to insert the “Skin1/” prefix for every addressable.

Also while editing the app, every image component and UI element would be blank, you would not be able to test, setting the addressables in editor is not supported as I found out. There is so many problems, and I’m at it 3 days straight now.

I really need some best practice tips, since our use-case should be the standard for every bigger production I guess.
Hope someone can lead us in the right direction! :wink:

Groups are for changing how the assets in each group are bundled and loaded. You can have one group bundle all assets in one large bundle, with CRC checks, and another group where each asset is bundled separately, without CRC checks, and lots of other settings for each group. If all your assets will have the same settings, then yeah, groups have limited use.

I agree with them automatically adding the raw asset’s extension, it makes no sense. Maybe it’s for differentiating between 2 asset types with the same name, but loading with already handles that. There should at least be a setting to disable that.

This actually makes sense to me. This allows you to have nested folders and be able to reference each address recursively, even if they share the same name and type (they are differentiated by their folder hierarchy).

This one I don’t have a good answer for on a large scale. Personally, I just assign whatever asset I need to edit things, then remove it when I’m finished, but I’ve only been doing that on a small scale. If you figure this one out, let me know!

1 Like

Thank you for your suggestions!
I now experimented with two groups and setting the addresses manually, since the file extensions drove me nuts :smile:
I’m trying to make some kind of Skin Controller that lives on GameObjects to change their images depending on the selected skin. I’m not sure if it will work in the editor, but interesting to hear that you just put assets/ images on the objects to edit and remove them.
Seems like a very dull working environment :stuck_out_tongue:

I’m going to get more into it, but I’m having a hard time getting started, although I watched every official Unity video to Addressables and some other content + documentation :smile: