Change set of asset depending on a compilation variable?

Hi,

I need to deliver the same application to different clients changing some ui elements according to the client requirements.
What could I do to make it easy? I don’t want to have differents projects to do this.

Thanks!

You can change the “flavor” of your app a bunch of ways. Here are two:

  • check and uncheck two different scenes in the Build Settings box before you build

  • use a Scripting Define Symbol in PlayerPrefs before you build it

  • make an editor script window that requires you to positively select one or the other before building, and writes out a fresh config file

  • have a little config file that contains either “client1” or “client2” and make code to decide based on that

1 Like

^ Using different scenes is a good, easy solution. You can load it additively if you want to add the client-specific UI elements scene to a larger scene that’s shared by all clients.

Another idea is to use assetbundles. Then just pack up your build with the corresponding assetbundle for each client.

2 Likes

Good idea… that is actually a superior approach: it allows you to make and test a single binary, and never have to rebuild it again, just rebuild a new asset bundle for your subsequent clients, and include that bundle instead at your bundle up step.

The issue of the assetbundle is I can’t add a script… I’m sure I’ll go for the multiple scene option and an editor script to choose the build option using BuildPipeline.BuildPlayer