Environments
Unity Remote Config uses Environments to group settings and rules and deliver specific environments to the client (Unity Runtime Instance) based on the environmentId. If an environmentId is not provided in the request the default environment will be returned to that instance.
In the Unity Editor, select Window > Remote Config to open the Remote Config window.
Use the Remote Config window to manage your Remote Config Environments. Upon initialization in a new project there are no environments automatically created. By default, you will always have at least one environment which will be the Default Environment.
Important: Each Environment has a unique Rules and Settings set. Before configuring Rules and Settings for your game, make sure the proper Remote Config environment is selected in the Remote Config window.
Restrictions
- Maximum of 10 environments per project
- Environment names must be unique
Development
is a reserved environment name and can not be created by a user.
Working with Environments
Using the Remote Config window, the full set of functionality is present to create, edit, and delete environments. For those who prefer to work outside of the editor the REST APIs or Web Dashboard provide the same level of functionality, if one of those mediums is preferable.
Creating new Environments
To create a new Remote Config Rule in the Remote Config window, click the Create button and name the environment.
Each Environment has three main parameters, the EnvironmentID is required for integration. The parameters are detailed below:
EnvironmentName
The Name is the readable identifier for the Environment. For example, you might name an environment to match a given build of your game com.Unity.MyGame@1.1.1
; or for a team-member, allowing them to work independently of the settings used by others @yourNameGoesHere
.
Note: The name Development
is reserved and can not be created by a user.
EnvironmentID
The EnvironmentID is a generated UUID (universally unique identifier) for the environment and is used by the client when requesting the Rules and Settings. The EnvironmentID requested by the client can be set using the method:
ConfigManager.SetEnvironmentID("001122-334455-6789");
Editing Environments
To edit a Remote Config environment in the Remote Config window, click the Edit button and rename the environment or set it as default.
DefaultEnvironment
The Default Environment is the Environment that will be returned to a Unity Instance when an EnvironmentID is not provided in the request or an invalid UUID is set. For 1.1.0+ package versions, receiving rules and settings from a non default EnvironmentID is possible. This can be done using the ConfigManager API method SetEnvironmentID in the outgoing request.
Example of an environment set as default denoted by the Checkmark
after the is Default: label in the screenshot.
Example of an environment that is not the default environment denoted by the X
following the is Default: label in the screenshot.
Upgrade Notes for Developers using Package Versions < 1.1.x
- Newly created environments will not be useable in older versions of the package <1.1.x
- Upon downgrading those environments other than
Development
and the environment which is set as the default environment will still exist but not be usable for clients built by package versions <= 1.0.x . - Upon downgrading to a package version <= 1.0.x, an environment named
Development
will be created if it did not already exist. This supports delivery to clients built as Development Builds for those older package versions.
Default Environment for 1.0.x package upgrades
- The environment named
Release
is set as default when upgrading from an older version of the package. - The
Development
environment will only be delivered by default Development Builds for packages <= 1.0.x.
Example use cases
Below are some examples of how you can utilize environments for your Project.
Development Workflow
Build Specific Environments
Levels or App Sections
Rules and Settings
Once you’ve configured your Environments, continue integrating by creating [Rules and Settings.](Rules and Settings.md)