BuildManifestObject
は、UnityCloudBuildManifest.json テキストアセットを手動で読み込む必用なく、スクリプトを使用して ビルドマニフェスト の値にアクセスできる ScriptableObject です。
UnityCloudBuildManifest.json テキストアセットが書き込まれていない場合の、Cloud Build によって呼び出されるエクスポート前のメソッドに渡される任意のパラメーターです。詳細については、JSON 形式のマニフェスト を参照してください。
以下の C# コード例は、エクスポート前のメソッドを示しています。そのメソッドは、マニフェストが提供する buildNumber
に基づいて PlayerSettings
のbundleVersion
を更新します。エクスポート前のメソッドの詳細については、 エクスポート前後のメソッド を参照してください。
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();
}
}