Version: 2021.3
言語: 日本語
JSON 形式のビルドマニフェスト
ビルドのスケジュール

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

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

UnityCloudBuildManifest.json テキストアセットが書き込まれていない場合の、Cloud Build によって呼び出されるエクスポート前のメソッドに渡される任意のパラメーターです。詳細については、JSON 形式のマニフェスト を参照してください。

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

using UnityEngine;
using UnityEditor;
using System;

public class CloudBuildHelper : MonoBehaviour
{
    #if UNITY_CLOUD_BUILD
        public static void PreExport(UnityEngine.CloudBuild.BuildManifestObject manifest)
        {
            PlayerSettings.bundleVersion = string.Format("1.0.{0}", manifest.GetValue<int>("buildNumber"));
        }
    #endif
}

これは 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 形式のビルドマニフェスト
ビルドのスケジュール