I want to set up my Pro and Lite versions so they require as few changes as possible. I don't want to have to edit the code or remove objects if at all possible.
Ideally, let's say, for Ads I could just check the Bundle ID at run time and decide not to start the ads up. Is that possible? Anyone have better suggestions?
If you are using C# you can maintain two separate versions with slightly different code using preprocessor directives. This is not only easy, it's also low-maintence which is the most important thing when branching an application into two versions.
Here is an example using #if #else and #endif
#define LITE true
void Start()
{
#if LITE
// Less health in LITE version
playerHealth = 50;
#else
playerHealth = 100;
#endif
}
void Update()
{
#if !LITE
// health regen
playerHealth += 5 * Time.deltaTime;
#endif
}
I think you mean like, in the Apple app stores, they have the Lite version, and the Full version. So you have like, the version with all the features, and a version with specialized things, such as no ads, maybe more money to start off with, etc.
So really, you'd just code the free version first. Then save that as the "Lite" version, then you add in/take out what you don't want for the "Pro" version. Is this what you mean? I mean, it's common sense, and differs depending on what kind of game it is and what you deem to be appropriate and what not.
If you mean a paid version vs free version (ad supported) of Your app, yeah, you can build in a boolean or something that says which version it is, then check it in various places in your code where you want to disable the paid features. you can deactivate gameobjects, scripts, whatever, enable adds, different GUI's whatever. This assumes you have two different builds of it. If you want one app that gets 'activated' online, that's a different kettle of fish. I'm thinking of putting such a solution on the Asset Store.