Environments API

Environments are logical partitions for Unity Gaming Services that contain data associated with your project.

This section focuses on the Environments API in the Core package. The access point to the Environments API is through the EnvironmentsApi singleton.

namespace Unity.Services.Core.Environments.Editor
{
    public class EnvironmentsApi
    {
        public static IEnvironmentsApi Instance { get; }
    }
}

Environment Selector

The Environment Selector sets the current environment for all supported services.

To select an environment in the Unity Editor:

  1. Go to Edit > Project Settings > Services > Environments.
  2. In the Editor Environment field, select the environment to use.

You can manage environments, such as adding or deleting environments, in the Unity Cloud Dashboard.

Active environment

You can access the active environment as the name or GUID. The PropertyChanged event informs you when the environment changes.

namespace Unity.Services.Core.Environments.Editor
{
    public class EnvironmentsApi
    {
        public string ActiveEnvironmentName { get; set; }
        public System.Nullable<System.Guid> ActiveEnvironmentId { get; }
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
    }
}

Environment management

The EnvironmentsApi allows you to refresh the environments list, get all environments, set the active environment, and validate that the active environment still exists remotely.

namespace Unity.Services.Core.Editor.Environments
{
    public class EnvironmentsApi
    {
        public System.Collections.Generic.IReadOnlyCollection<EnvironmentInfo> Environments { get; }
        public System.Threading.Tasks.Task RefreshAsync();
        public void SetActiveEnvironment(EnvironmentInfo environment);
        public System.Threading.Tasks.Task<ValidationResult> ValidateEnvironmentAsync();
    }
}

Build and runtime

At build and runtime, the chosen environment uses a priority fallback mechanism to choose the correct environment:

InitializationOptions >> Environment Selector >> default environment ("production").

Using InitializationOptions is shown in the Services Core SDK Initialization example.

UI components

The EnvironmentView component displays the current active environment and allows quick access to the global Environment Selector.

The following example shows how to add this component into a toolbar with UXML:

<ui:UXML
    xmlns:uie="UnityEditor.UIElements"
    xmlns:coreUi="Unity.Services.Core.Editor.Environments.UI"
    editor-extension-mode="True">
    <uie:Toolbar>
        <coreUi:EnvironmentView />
    </uie:Toolbar>
</ui:UXML>