Version: 2018.4
言語: 日本語
UDP コンソールを使ったゲームの管理と公開
UDP リファレンス

他のサービスを利用した UDP の使用

Cloud Build を UDP と共に使用

Cloud Build を使って、以下の方法でゲームを UDP コンソールに展開できます。

Cloud Build を使ってビルドを UDP コンソールにプッシュ送信

ここでは、CloudBuild を使用してゲームを UDP にプッシュ送信する方法について説明します。 Unity エディターで、Unity Services ウィンドウから Cloud Build を有効にします。

エディターで Cloud Build を使用してゲームを UDP に展開

Unity エディターの Cloud Build 機能を通してゲームを UDP に展開するには、UDP ビルドをアップロードして UDP にプッシュ送信する必要があります。

  1. Cloud Build Services ウィンドウで、これまでビルドをアップロードしたことがない場合は、Upload Build を選択します。
  2. ファイル内で
    • UDP ビルドの APK を選択してください
    • 便利な LABEL を入力してください
    • PLATFORM フィールドを Android に設定します
  3. UPLOAD を選択して、アップロードプロセスを完了させます。
  4. Cloud Build Services ウィンドウで、ビルドの History (履歴) タイムラインから目的のビルドを見つけ、Push to Unity Distribution Portal を選択します。
    1. プッシュできること、およびアクションが完了することを確認します。

Unity Dashboard を使ってゲームを UDP に展開

Unity Dashboard の Cloud Build 機能を通してゲームを UDP に展開するには、UDP ビルドを Unity Dashboard にアップロードして、そこから UDP にプッシュ送信する必要があります。

  1. Unity Developer Dashboard で、プロジェクトの Cloud Build > History の順に移動します。
  2. Upload を選択し APK ファイルを選択します。
  3. Platform フィールドで Android を選択します。
  4. Upload を選択します。
  5. ビルド横の More メニューを選択して、ドロップダウンを開きます。
  6. Push to Unity Distribution Portal を選択します。

Cloud Build を使ったビルドと展開

Unity Teams Advanced を使用すると、ビルドを自動的に生成できます

Cloud Build Services ウィンドウで

Manage Build Targets > Add new build target を選択します 1. TARGET SETUP ウィンドウで PLATFORM フィールドを Android に設定し、便利な TARGET LABEL を入力します。 1. Next: Save を選択します。
1. Start Cloud Build を選択してから、作成したターゲットビルドを選択します。

Unity Cloud Build Developer Dashboard を通してビルドを UDP に直接プッシュ送信します (前述を参照)。

サービスの相互運用性

UDP は、ゲームで使用されている他のサービスに、ゲームがダウンロードされたストアを通知できます。

この情報は、Unity サービスだけでなく、サードパーティまたは独自のサービスでさまざまな方法で利用できます。

たとえば、Unity Remote Config を使用すると、ゲームのダウンロード元のストアなど、定義したルールに基づいてゲーム設定を調整できます。

このセクションでは、他のサービスがこの情報にアクセスできるようにする方法を説明し、 を紹介します。

機能のしくみ

ゲームがプレイヤーのデバイスで最初に起動されると、UDP は udp.json ファイルを作成してゲームの Persistent Data Path (永続データパス) に置きます。このファイルには、ゲームがダウンロードされたストアを示すフィールド udpStore が含まれています。その情報を取得して、目的に応じて利用します。

ノート: これにより、ゲームマニフェストに新しい権限が追加されることはありません。

udp.json を保存

ファイル udp.json は以下のパスに保存します。

Application.PersistentDataPath + '/Unity' + /Application.CloudProjectID + /udp/udp.json

上のパスで

  • Application.PersistentDataPath はゲームの永続データパスです。
  • Application.CloudProjectID はゲームの Unity プロジェクト ID です。

以下は udp.json ファイルへのパスの例です。

path/storage/emulated/0/Android/data/com.mystudio.mygame/files/Unity/c83d2de2-de74-4b75-83fc-ade948bda064/udp/udp.json

上のパスで

  • Application.PersistentDataPath= path/storage/emulated/0/Android/data/com.mystudio.mygame
  • Application.CloudProjectID= c83d2de2-de74-4b75-83fc-ade948bda064

udp.json の読み込み

ファイル udp.json には次の情報が含まれます。

{"key":"UDP","udpStore":"StoreName","udpClientId":"value_of_udpClientId","CloudProjectId":"value_of_CloudProjectId"}

フィールド udpStore には、ゲームのダウンロード元の UDP ストアの値が含まれます。

以下は udp.json ファイルの例です。

{“key”:“UDP”,“udpStore”:“SamsungGalaxyStore”,“udpClientId”:“icjaB7wmu_q7AOjrSLH8yw”,“cloudProjectId”:“bc2be074–09f3–450f–8e98-a0f79c9746f7”}

この例では、ゲームは Samsung Galaxy Store からダウンロードされました。

ヒント: JSONUtility.FromJsonOverwrite を使って、ファイルのコンテンツをテキストアセットとして読み込みます。

udpStore 値

以下の表は、UDP で利用可能なストアの udpStore 値のリストです。

これらは、大文字小文字を区別します。

ストア (UDP でのチャンネル名) udpStore の値
UDP Sandbox (ジェネリックな UDP ビルド用) UdpSandbox
ONE store OneStore
APPTUTTi Apptutti
VIVEPORT Htc
Mi GetApps (Xiaomi) XiaomiStore
Mi Game Center (Xiaomi China) XiaomiStoreCn
HUAWEI AppGallery Huawei
Samsung Galaxy Store SamsungGalaxyStore
QooApp Game Store QooApp
TPAY MOBILE Stores Tpay
Uptodown Uptodown
SHAREit ShareIt
JioGames JioGamesStore

Remote Config を通した udpStore の使用

Unity Remote Config を使用すると、アプリケーションの新しいバージョンを展開せずにゲーム設定を調整できます。プレイヤーがゲームを起動すると、Remote Config は、ルール条件 (Unity、アプリケーション、ユーザー、自身で定義したカスタム基準に基づく) として使用されるコンテキスト属性を検出します。次に、サービスは、適用されるルールに従って、各プレイヤーのカスタマイズされた設定を返します。

ルール条件の属性として udpStore を使用すると、ゲームのダウンロード元の UDP ストアに応じてゲーム設定を決定できます。

Remote Config を使用して udpStore を実装するには、以下の手順に従います。

  1. UDP パッケージ をダウンロードしインストールします。
  2. Unity Remote Config パッケージをダウンロードしインストールします。詳しくは、Remote Config のドキュメント を参照してください。
  3. 少なくとも “udpStore” パラメーターを含む AppAttributes 構造体を作ります。
    public struct AppAttributes { public string udpStore; }
  4. ゲームコードで Remote Config の ConfigManager.FetchConfigs コールを実装します。
  5. FetchConfigs を呼び出すときに AppAttributes 構造体の新規インスタンスを作成し、Application.PersistentDataPath + ‘/Unity’ + /Application.CloudProjectId + /udp/udp.json に対して JSONUtility.FromJsonOverwrite を使って UDP ストアデータを読み込み、ファイルのコンテンツをテキストアセットとして読み込みます。
    { string udpFilePath = System.IO.Path.Combine(Application.persistentDataPath, "Unity", Application.cloudProjectId, "udp", "udp.json"); string udpFileContents = System.IO.File.ReadAllText(udpFilePath); var appAttr = JsonUtility.FromJson<AppAttributes>(udpFileContents); Unity.RemoteConfig.ConfigManager.FetchCompleted += ConfigManager_FetchCompleted; Unity.RemoteConfig.ConfigManager.FetchConfigs(null, appAttr); }
  6. AppAttributes 構造体を ConfigManager.FetchConfigs で使用するよう注意してください。
  7. Remote Config ウィンドウを開き (Window > Remote Config)、UDP ストアに基づいて変更したいパラメーターを作ります。
  8. パラメーターを設定し、ゲームコードに組み込んだら、Remote Config ウィンドウで各ストアのルールを作成します。
  9. 各ルールの Condition に以下を入力します。app.udpStore == “[storeName]”
  10. 設定を有効にするには、Remote Config ウィンドウの左ペインにあるルール名 (Name) の横にあるチェックボックスを選択します。
  11. アプリケーションをデバイスにビルドし、ルールが正しく適用されていることを確認して、配布します。

Unity IAP を使用した UDP 用の IAP アイテムの実装

Unity IAP を使用して UDP を実装する場合は、最初に Unity IAP を設定 します。

ノート: UDPパッケージを使用する代わりに Unity IAP バージョン 1.22.0–1.23.5 を使って UDP を実装することを選択した場合は、Unity IAP 経由でのみ実装してください。

Unity IAP は自動的に以下を処理します。

  • UDP の初期化
  • ストアの IAP プロダクトインベントリのクエリ
  • プロダクトの購入のリクエスト
  • 購入したアイテムの消費

ただし、ゲームは Unity IAP ドキュメント に基づいて、Unity IAP の同様の機能 (初期化や購入など) を適切に使用する必要があります。

Unity IAP を使用してゲームのアプリ内課金を実装したら、以下の手順で Unity IAP を使用して UDP を設定します。

IAP インベントリのクエリ

Unity IAP (コードによる実装) を使用

エディターで定義した IAP プロダクトを取得

queryInventory メソッドに渡す IAP プロダクトを取得する場合は、ProductCatalog.LoadDefaultCatalog() を呼び出します。このメソッドは、エディターの IAP Catalog (Window > Unity IAP > IAP Catalog) で定義された IAP プロダクトを返します。

var catalog = ProductCatalog.LoadDefaultCatalog();

foreach (var product in catalog.allValidProducts)
{
   if (product.allStoreIDs.Count > 0)
   {
       var ids = new IDs();
       foreach (var storeID in product.allStoreIDs)
       {
           ids.Add(storeID.id, storeID.store);
       }
       builder.AddProduct(product.id, product.type, ids);
   }
   else
   {
       builder.AddProduct(product.id, product.type);
   }
}
UDP コンソールから IAP プロダクト情報を取得

UDP コンソールでゲームの IAP Catalog (IAP カタログ) を変更する場合は、UDP コンソールから IAP プロダクト情報を取得するようにゲームを設定してください。

queryInventory メソッドに渡す IAP プロダクトを取得する場合はbuilder.AddProduct を呼び出し、UDP コンソールから定義された特定の IAP プロダクトを取得します。

builder.AddProduct(product.id, product.type, new IDs{})

各通貨に調整したプロダクト価格を表示するには、productInfo.Value.Price を使用します。

UDP コンソールから IAP カタログを取得

UDP コンソールで定義されているすべての IAP プロダクトを取得するには、IAP プロダクトの取得メソッドを呼び出さないでください。ゲームは自動的に UDP コンソールから IAP カタログ全体を取得します。

ノート: UDP コンソールに IAP プロダクトの CSV ファイルをアップロードすると、IAP カタログが完全に上書きされます。

Unity IAP パッケージを IAP カタログに入力

UDP 用のすべてのアプリ内課金を IAP カタログ に加え、設定します。

ノート: ゲームクライアントで IAP カタログを使用しない場合 (例えば、ゲームサーバー上でのみ IAP アイテムを維持する場合) でも、UDP コンソールで IAP カタログを作成 する必要があります。

  1. Unity エディターで Window > Unity IAP > IAP Catalog を選択します。
  2. Add Product を選択し、各 IAP プロダクトに詳細情報を入力します。
    1. Unity Distribution Portal Configuration で IAP アイテムの価格を加えます。
  3. IAP プロダクトを UDP コンソールに保存するには、Sync to UDP を選択します。作成した各 IAP プロダクトに対し、この操作を行います。

IAP カタログが正しく保存されていることを確認するには、加えたアイテムが UDP コンソールに表示されていることを確認します。

UDP コンソールを使ったゲームの管理と公開
UDP リファレンス