# 環境変数の使用

> Learn how to use built-in and custom environment variables in Unity Build Automation.

ビルトイン環境変数を使用し、Unity Build Automation (UBA) でカスタム環境変数を定義します。

* ビルトイン変数は、ビルド環境とソース管理メタデータを自動的に公開します。
* カスタム環境変数を設定し、特定のニーズに応じて、ビルド前スクリプトとビルド後スクリプトを設定できます。

## 一般的なビルトイン環境変数##common-built-in-environment-variables

UBA は、ビルド時に自動的に使用可能なビルトイン環境変数を提供します。これらの変数は、ビルド環境、ターゲット設定、バージョン管理情報に関する有用な詳細を備えています。例えば、一般的に使用されるビルトイン環境変数を以下に挙げます。

| 変数名             | 説明                                  |
| --------------- | ----------------------------------- |
| `UNITY_VERSION` | ビルドが使用する Unity のバージョン。              |
| `BUILD_TARGET`  | Android、iOS、WebGL などのターゲットプラットフォーム。 |
| `BUILD_PATH`    | ビルド出力ディレクトリへのパス。                    |
| `PROJECT_PATH`  | Unity プロジェクトのルートディレクトリへのパス。         |
| `BUILD_NUMBER`  | ビルドの一意の識別子。                         |
| `GIT_BRANCH`    | 現在ビルド中の Git ブランチ。                   |
| `GIT_COMMIT`    | 現在の Git コミットのハッシュ。                  |

使用可能な環境変数の完全なリストについては、[環境変数リファレンスドキュメント](/build-automation/reference/available-environment-variables.md) を参照してください。

## 環境変数の設定##set-environment-variables

**ビルドターゲット** レベルで環境変数を設定します。これにより、ビルドターゲットごとに異なる変数を指定できるため、ステージングや本番環境など、さまざまなプラットフォームや環境に合わせた設定を使用できます。

UBA で、次に従って環境変数を定義します。

1. [Unity Dashboard](https://cloud.unity.com/home/organizations/default/projects/default/cloud-build/config) にアクセスし、プロジェクトを選択します。
2. **Build Automation** > **Configurations** (設定) を選択します。
3. 編集 (鉛筆) アイコンを選択して、選択したビルドターゲット設定を開きます。
4. **Advanced Settings**　(詳細設定) を選択します。
5. **Environment variables** (環境変数) で、変数のキーと値を入力します。
6. **Apply** (適用) を選択し、ページの上部にある **Save Changes** (変更を保存) を選択します。


**環境変数設定パネル:**
![環境変数設定パネル](/api/media?file=/build-automation/media/images/build-automation/environment-variables.png "UBA - 環境変数")

## 環境変数の使用##use-environment-variables

環境変数を定義した後は、[Unity スクリプト](#access-variables-in-unity-c-scripts)またはカスタムのビルド前/ビルド後 [シェルスクリプト](#access-variables-in-shell-scripts) でビルドプロセス中にそれらを参照できます。

> **Note:**
>
> **ノート**: 変数キーは大文字と小文字が区別されるため、正確に一致していることを確認します。

### Unity C# スクリプトのアクセス変数##access-variables-in-unity-c-scripts

`System.Environment` クラスを使用して環境変数を取得します。

```csharp
string apiKey = System.Environment.GetEnvironmentVariable("MY_API_KEY");
if (!string.IsNullOrEmpty(apiKey))
{
    Debug.Log("API Key loaded successfully.");
}
else
{
    Debug.LogWarning("API Key not found.");
}
```

### シェルスクリプトのアクセス変数##access-variables-in-shell-scripts

ビルド前またはビルド後シェルスクリプトを使用する場合は、ドル記号のプレフィックスを使用して特定の環境変数にアクセスできます。

```sh
echo "Build Number: $BUILD_NUMBER"
```

### 環境変数の欠落##missing-environment-variables

環境変数にアクセスできない場合は、以下の解決策を確認します。

* ビルドターゲット設定で環境変数が正しく定義されていることを確認します。
* 変数が正しく入力され、大文字と小文字が一致していることを確認します。
* [ビルドログ](../check-build-results/overview#view-logs) で、関連する警告やエラーを確認します。
* ビルド前またはビルド後スクリプトで診断コマンドを使用して、使用可能な変数を確認します。
  * Linux または macOS: `env`
  * Windows: `set`
