Version: 2020.2
言語: 日本語
JSON 形式のビルドマニフェスト
Cloud Build REST API

ScriptableObject としてのビルドマニフェスト

BuildManifestObject は、 UnityCloudBuildManifest.json テキストアセットを手動で読み込む必用なく、スクリプトを使用して ビルドマニフェスト の値にアクセスできる ScriptableObject です。

UnityCloudBuildManifest.json テキストアセットが作成されていない場合は、Unity Cloud Build によって呼び出されるエクスポート前のメソッドに渡されるオプションのパラメーターです。(詳しくは、JSON 形式のマニフェスト を参照してください。)

以下の C# コード例は、エクスポート前のメソッドを示しています。そのメソッドは、マニフェストが提供する buildNumber に基づいて PlayerSettingsbundleVersion を更新します。エクスポート前のメソッドの詳細については、 エクスポート前後のメソッド を参照してください。

using UnityEngine;
using UnityEditor;
using System;

public class CloudBuildHelper : MonoBehaviour
{
    public static void PreExport(UnityEngine.CloudBuild.BuildManifestObject manifest)
    {
        PlayerSettings.bundleVersion = String.Format("1.0.{0}", manifest.GetValue("buildNumber", "unknown"));
    }
}

これは BuildManifestObject クラスのパブリックインターフェースです。

namespace UnityEngine.CloudBuild
{
    public class BuildManifestObject : ScriptableObject
    {
        // マニフェストの Value を取得しようとしています - Key が見つかり、T 型にキャスト可能ならば true、そうでない場合は false を返します。
        public bool TryGetValue<T>(string key, out T result);
        // マニフェストの Value を取得しようとしています。指定したKey が見つからなければ例外を投げます。
        public T GetValue<T>(string key);
        // 指定したKey に Value を設定します。
        public void SetValue(string key, object value);
        // 辞書から Value をコピーします。格納する前に、辞書の Value に対して ToString() が呼び出されます。
        public void SetValues(Dictionary<string, object> sourceDict);
        // すべての Key/Value を削除します。
        public void ClearValues();
        // 現在の BuildManifestObject を表す辞書を返します。
        public Dictionary<string, object> ToDictionary();
        // 現在のBuildManifestObject を表す JSON 形式の文字列を返します。 
        public string ToJson();
        // 現在のBuildManifestObject を表す INI 形式の文字列を返します。
        public override string ToString();
    }
}
JSON 形式のビルドマニフェスト
Cloud Build REST API