# Environments API

> Manage logical data partitions using the Environments API.

[環境](./service-environments.md) は、プロジェクトに関連付けられたデータを含む Unity Gaming Services の論理パーティションです。

このセクションでは、Core パッケージの Environments API を中心に解説します。Environments API へのアクセスポイントには、`EnvironmentsApi` シングルトンを使用します。

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

## Environment Selector##environment-selector

Environment Selector (環境セレクター) では、すべてのサポート対象サービスに対し現在の環境を設定します。


**Frame:**
![](/api/media?file=/services/media/images/global-environment-selector.png)

Unity エディターで環境を選択するには、次の手順に従います。

1. **Edit** (編集) > **Project Settings** (プロジェクト設定) > **Services** (サービス) > **Environments** (環境) に移動します。
2. **Editor Environment** (エディター環境) フィールドで、使用する環境を選択します。

環境の管理 (追加や削除など) は、Unity Dashboard で行うことができます。

## アクティブ環境##active-environment

アクティブ環境には、名前または GUID としてアクセスできます。環境が変更されると、`PropertyChanged` イベントで通知されます。

```csharp
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

`EnvironmentsApi` を使用すると、環境リストの更新、すべての環境の取得、アクティブ環境の設定、リモートでのアクティブ環境の存在確認を行うことができます。

```csharp
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

ビルド時およびランタイム時には、選択した環境で以下の優先度フォールバックメカニズムを使用し、適切な環境が選択されます。

`InitializationOptions` >> Environment Selector (環境セレクター) >> デフォルト環境 (`"production"`)。

`InitializationOptions` の使用方法については、Services Core SDK の [初期化の例](./services-core-api.md#initialization-example) を参照してください。

## UI コンポーネント##ui-components

`EnvironmentView` コンポーネントは現在のアクティブ環境を表示します。ここから、グローバルな [Environment Selector](#environment-selector) (環境セレクター) へすぐにアクセスできます。


**Frame:**
![](/api/media?file=/services/media/images/environment-view.png)

以下の例に、UXML を使用してこのコンポーネントをツールバーに追加する方法を示します。

```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>
```
