# Unity Licensing Client の設定

> Learn how to configure the client computers that connect to your Unity Licensing Server.

ユーザーのコンピューターで Unity Licensing Client を実行するには、サービス設定ファイル (`services-config.json`) をライセンスサーバーからコピーする必要があります。

必要に応じて、設定をカスタマイズすることができます。

## 設定ファイルのコピー##copying-the-configuration-file

`services-config.json` という名前の JSON ファイルには、Unity Licensing Client の設定が格納されています。[サーバー設定コマンド](./server-setup-cfg.md) を実行すると、ライセンスサーバー上にファイルが生成されます。生成された JSON ファイルには、以下の設定が格納されます。

```json
{
  "licensingServiceBaseUrl": "http://SERVER-IP-ADDRESS:PORT",
  "enableEntitlementLicensing": true,
  "hubEnableWorkOffline": true,
  "clientConnectTimeoutSec": 60,
  "clientHandshakeTimeoutSec": 30
}
```

ライセンスサーバー上から Unity エディターを実行する各クライアントコンピューターに `services-config.json` をコピーします。以下の表で指定されているパスにファイルをコピーします。フォルダーが存在しない場合は作成してください。

| プラットフォーム | サービス設定パス                                     |
| -------- | -------------------------------------------- |
| Windows  | `%PROGRAMDATA%\Unity\config\`                |
| macOS    | `/Library/Application Support/Unity/config/` |
| Linux    | `/usr/share/unity3d/config/`                 |

### 対応する設定キー##supported-configuration-keys

クライアント設定をカスタマイズする必要がある場合は、以下のキーを設定できます。

| キー                                    | 説明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `licensingServiceBaseUrl`             | フローティングライセンスサーバーのネットワークアドレスを指定します。ライセンスクライアントは、このアドレスの異なるエンドポイントに接続して、リースとライセンスをリクエストします。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `enableEntitlementLicensing`          | エンタイトルメントライセンスを有効にします。Unity エディターのバージョンが 2022.1 以降の場合、この設定を変更しても影響はありません。Unity サポートから指示がない限り、この値を変更しないでください。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `hubEnableWorkOffline`                | クライアントがフローティングライセンスをチェックアウトしてオフラインで作業できるかどうかを指定します。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `clientConnectTimeoutSec`             | エディターが Unity Licensing Client に接続する場合のタイムアウト期間 (秒単位) を指定します。この期間が経過すると操作が終了します。このタイムアウトは、Unity Licensing Client の起動とプロセス間の接続の確立の両方に適用されます。2020.3 以降では、有効な範囲は 0.5 から 120 秒までで、デフォルト値は 60 秒です。2020.3 より前のバージョンでは、有効な範囲は 0.5 から 20 秒までで、デフォルト値は 10 秒です。                                                                                                                                                                                                                                                                                                                                                                                 |
| `clientHandshakeTimeoutSec`           | Unity Licensing Client へのハンドシェイク API 呼び出しを確立する場合のタイムアウト期間 (秒単位) を指定します。この期間が経過すると操作が終了します。2020.3 以降では、有効な範囲は 0.5 から 60 秒までで、デフォルト値は 30 秒です。2020.3 より前のバージョンでは、有効な範囲は 0.5 から 20 秒までで、デフォルト値は 2 秒です。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `clientResolveEntitlementsTimeoutSec` | エディターが Unity Licensing Client にエンタイトルメントをクエリする場合のタイムアウト期間 (秒単位) を指定します。この期間が経過すると操作が終了します。2020.3 以降では、有効な範囲は 0.5 から 60 秒までで、デフォルト値は 30 秒です。2020.3 より前のバージョンでは、有効な範囲は 0.5 から 20 秒までで、デフォルト値は 2 秒です。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `clientUpdateLicenseTimeoutSec`       | エディターがライセンス API への更新呼び出しを行う場合のタイムアウト期間 (秒単位) を指定します。この期間が経過すると操作が終了します。2020.3 以降では、有効な範囲は 0.5 から 60 秒までで、デフォルト値は 30 秒です。2020.3 より前のバージョンでは、有効な範囲は 0.5 から 20 秒までで、デフォルト値は 10 秒です。                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `licensingServiceTimeoutSec`          | サーバーバージョン 1.11 以降に適用されます。ライセンスサーバーからのレスポンスを受け取る場合のタイムアウト (秒単位) を設定します。デフォルト値は 60 秒です。有効な値は 10 から 300 までです。バージョン 1.10 以前では 10 秒に固定されていました。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `toolset`                             | ライセンスサーバーからリクエストする製品ライセンスを指定します。サーバーは、クライアントに一度に 1 つの製品ライセンスを提供します。優先するライセンスの順に、カンマ区切り文字列を指定できます。使用可能な製品 ID を表示するには、[Server Administration Status (サーバー管理状態) ページ](./server-setup-test.md) に移動し、`licenseEntitlementGroupId` 以下のリストを表示します。サーバーは、指定された順序で各ライセンスを処理します。ライセンスが使用可能でない場合、リスト内の次のライセンスに移動します。`toolset` 値を指定しない場合、デフォルトのツールセットを提供します。デフォルトのツールセットの詳細については、[サーバーの詳細設定](./server-admin.md#advanced-server-configuration) を参照してください。サーバーライセンスの変更がツールセット設定に与える影響については、以下を参照してください。- [ライセンス更新がクライアント設定に与える影響](./server-admin.md#impact-license-updates) - [ライセンスリニューアルがクライアント設定に与える影響](./server-admin.md#impact-license-renewals) |
| `licenseClientApplicationPath`        | Unity Licensing Client 実行ファイルのフルパスを指定します。Unity Hub バージョン 2.3.0 以降または Unity エディター 2019.2 以降では使用されません。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `enableFloatingApi`                   | クライアントでフローティングライセンス API を有効にします。Unity Licensing Client バージョン 1.3.0 以前を使用している場合にのみ、このフラグを設定します。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

## 設定ファイルの検証#validating-the-configuration-file

各変更の後に、設定ファイル内の JSON が構文的に有効であることを確認します。JSON 検証ツールを使用するか、以下のようなコンソールコマンドを利用することで確認できます。

```bash
python -m json.tool services-config.json
```

検証に成功するとコンソールに JSON ファイルのコンテンツが表示され、失敗するとエラーが表示されます。

## クライアント上でのテスト##testing-the-license-client

Unity Licensing Client をテストする前に、Unity エディターの場所をご確認ください。[Locate the Editor program file](https://docs.unity3d.com/hub/manual/AddEditor.html#locate-the-editor-program-file) を参照してください。Unity エディターのデフォルトのインストールパスは以下の通りです。

* Windows: `"C:\Program Files\Unity\Hub\Editor\<version />\Editor\Unity.exe"`
* macOS: `/Applications/Unity/Hub/Editor/<version />/Unity.app`
* Linux: `/Applications/Unity/Hub/Editor/<version />/Unity.app`

以下のステップに従ってクライアント設定をテストします。

1. コマンドプロンプト (Windows) またはターミナルのアプリケーション (masOS) を開きます。

2. エディターディレクトリ内にある Unity Licensing Client ディレクトリに移動します。

   * Windows:\
     `<UnityEditorDir />\Data\Resources\Licensing\Client`

   - macOS (エディターバージョン 2021.3.19f1 以降):\
     `<UnityEditorDir />/Contents/Frameworks/UnityLicensingClient.app/Contents/MacOS/`

   * macOS (2021.3.19f1 より前のエディターバージョン):\
     `<UnityEditorDir>/Contents/Frameworks/UnityLicensingClient.app/Contents/Resources/`

   - Linux:\
     `<UnityEditorDir>/Data/Resources/licensing-server/Client/`

3. 以下のコマンドを実行します。

   * Windows: `.\Unity.Licensing.Client.exe --acquire-floating`
   * macOS: `./Unity.Licensing.Client --acquire-floating`
   * Linux: `./Unity.Licensing.Client --acquire-floating`

設定が有効な場合、サーバーはフローティングライセンスをトークン識別子とともに割り当てます。コンソール出力は、以下の例のようになります。

```bash
Trying to acquire floating license from: 10.1.34.126 ...
License lease Created with token e8b1afba-895d-4c54-aa50-5eadcc4d95a7.
Expires: July 12, 2019 6:47:57 PM
```

## その他のリソース

* [Unity Floating Licensing クライアントのトラブルシューティング](./troubleshooting-client.md)
* [Unity Floating License Server Fundamentals](https://learn.unity.com/course/unity-floating-license-server-fundamentals) (Unity Learn コース)
