Extend Codegen CLIを使用してExtend Service Extension用のUnity SDKプラグインを生成する
注釈:本資料はAI技術を用いて翻訳されています。
Overview
このガイドでは、Extend Codegen CLIを使用してカスタムサービス用のUnityパッケージを生成する最短の方法を説明します。
以下がすでに用意されている場合に、このフローを使用してください。
- Unityプロジェクトに導入済みのAccelByte Unity SDK
- サービス用のOpenAPI 2.0 JSONファイル
- GitHub Releasesから入手したUnityテンプレートパックのZIPファイル
サービスがExtend Service Extensionアプリの場合、AGSのAdmin PortalでアプリのOpen API DocumentationページからOpenAPI 2.0 JSONを取得できます。
デプロイ前にOpenAPIファイルが必要な場合は、デプロイせずにService Extension OpenAPIを生成するを参照してください。
開始前に
まず以下の項目を準備してください。
- AccelByte Unity SDKがすでにインストールされているUnityプロジェクト。
bash、make、Dockerを利用できるLinux環境またはWindows 11 WSL2。- カスタムサービス用の有効なOpenAPI 2.0 JSONファイル。
accelbyte-unity-sdk-template-pack.zipファイル。
AGSのAdmin PortalでアプリのOpen API DocumentationページからOpenAPI 2.0 JSONを取得できます。デプロイ前にOpenAPIファイルが必要な場合は、デプロイせずにService Extension OpenAPIを生成するを参照してください。
コード生成を実行する前に、Swagger EditorでOpenAPIファイルを検証してください。無効な仕様は生成が失敗する最も一般的な原因です。
クイックスタート
1. Extend Codegen CLIのDockerイメージをプルする
docker pull accelbyte/extend-codegen-cli:0.0.29
2. Unityテンプレートパックをダウンロードして展開する
wget https://github.com/AccelByte/extend-codegen-cli/releases/download/v0.0.29/accelbyte-unity-sdk-template-pack.zip
unzip accelbyte-unity-sdk-template-pack.zip
3. 展開されたフォルダを開く
cd accelbyte-unity-sdk-template-pack/
4. specフォルダを準備する
Unityプロジェクトにspecフォルダを作成し、同じOpenAPIファイルをルートと以下の3つのサブフォルダに配置します。
spec/Clientspec/GameServerspec/Models
例:
/path/to/my-unity-project/
|__ Assets/
|__ Packages/
|__ ProjectSettings/
|__ spec/
|__ Client/
| |__ guild.json
|__ GameServer/
| |__ guild.json
|__ Models/
| |__ guild.json
|__ guild.json
guild.jsonのようなシンプルな小文字のファイル名を使用してください。テンプレートパックはコード生成時にそのファイル名をサービス識別子として使用します。
複数のサービスを生成する場合、各OpenAPIファイルが一意のbasePathを使用していることを確認してください。basePathの値が重複していると、命名や実行時の競合が発生する可能性があります。
5. コード生成を実行する
以下を実行します。
make all \
CODEGEN_IMAGE_VERSION=0.0.29 \
PROJECT_PATH=/path/to/my-unity-project \
SPEC_PATH=/path/to/my-unity-project/spec \
PACKAGE_TYPE=plugin \
ADMIN_API_PATH=/admin/
パラメータの概要:
CODEGEN_IMAGE_VERSION: 使用するaccelbyte/extend-codegen-cliのバージョンPROJECT_PATH: UnityプロジェクトのルートSPEC_PATH:specフォルダへのパスPACKAGE_TYPE=plugin: スタンドアロンのUnityパッケージを生成ADMIN_API_PATH: クライアントとサーバーのエンドポイントの分割(任意)
6. パッケージが生成されたことを確認する
PACKAGE_TYPE=pluginの場合、生成されたパッケージはUnityプロジェクトの隣に作成されます。
/path/to/com.AccelByte.SDK.Custom/
|__ package.json
|__ Runtime/
|__ AccelByte.Sdk.Custom.asmdef
|__ Api/
| |__ Guild.cs
|__ Models/
|__ GuildModels.cs
7. パッケージをUnityに追加する
生成されたパッケージをPackages/manifest.jsonに追加します。
{
"dependencies": {
"com.accelbyte.unitysdk": "file:../com.AccelByte.SDK",
"com.accelbyte.unitysdk.custom": "file:../com.AccelByte.SDK.Custom"
}
}
Unityを再度開くか、manifest.jsonの変更後にUnityにパッケージを再読み込みさせます。
生成されたAPIを使用する
SDKの名前空間をインポートします。
using AccelByte.Api;
using AccelByte.Core;
using AccelByte.Models;
SDKレジストリを介して生成されたサービスを呼び出します。
Guild guild = AccelByteSDK.GetClientRegistry().GetApi().GetApi<Guild, GuildApi>();
guild.GetGuildProgress("testGuildId", (Result<AccelByteGuildGetGuildProgressResponse> result) =>
{
});
より簡単なカスタムSDKアクセスパターンは、リリース2026.2で予定されています。
カスタムサービスのServerUrlやbasePathをオーバーライドする必要がある場合は、Unity用の環境切り替えの有効化を参照してください。
詳細が必要な場合
クイックスタート以上の情報が必要な場合は、以下の参考資料を使用してください。
トラブルシューティング
生成が開始する前にmakeが失敗する
まず以下を確認してください。
- Dockerがインストールされ、実行されている。
- ユーザーがDockerコマンドを実行できる。
- OpenAPIファイルが有効なOpenAPI 2.0である。
Unityが生成されたパッケージを読み込めない
以下の項目を確認してください。
Packages/manifest.jsonが正しい相対パスを指している。package.jsonがcom.AccelByte.SDK.Custom内に存在する。- 基本のAccelByte Unity SDKパッケージがすでにインストールされている。
生成されたコードが別のカスタムサービスと競合する
以下の項目を確認してください。
- 各OpenAPIファイルが一意のファイル名を使用している。
- 各OpenAPIファイルが一意の
basePathを使用している。
再生成すると手動での編集が削除される
生成されたファイルはビルド出力として扱ってください。カスタムロジックは、生成されたパッケージを直接編集するのではなく、自分のプロジェクトコード内に保持してください。