环境 API

环境是指 Unity Gaming Services(Unity 游戏服务)的逻辑分区,其中包含与项目关联的数据。

本节重点介绍 Core 包中的 Environments API。Environments API 的访问点是通过 EnvironmentsApi 单例。

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

环境选择器

Environment Selector(环境选择器)为所有支持的服务设置当前环境。

要在 Unity 编辑器中选择环境,请执行以下操作:

  1. 转到 Edit(编辑)> Project Settings(项目设置)> Services(服务)> Environments(环境)
  2. 在 **Editor Environment(编辑器环境)**字段中,选择要使用的环境。

您可以在 Unity Cloud Dashboard 中管理环境,例如添加或删除环境。

活跃环境

您可以通过名称或 GUID 访问活跃环境。当环境发生变化时,您可以通过 PropertyChanged 事件收到通知。

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;
    }
}

环境管理

使用 EnvironmentsApi 可以刷新环境列表,获取所有环境,设置活跃环境,以及远程验证活跃环境是否仍然存在。

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();
    }
}

构建和运行时

在构建和运行时,所选环境使用优先级回退机制来选择正确的环境:

InitializationOptions >> Environment Selector(环境选择器)>> 默认环境 ("production")。

InitializationOptions 的使用方式如 Services Core SDK 初始化示例中所示。

UI 组件

EnvironmentView 组件会显示当前活跃环境并允许快速访问全局 Environment Selector(环境选择器)

以下示例显示了如何使用 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>