カスタムビルド環境
エディターの ビルドメニュー を使用してプロジェクトをビルドする場合、Naninovelは追加の事前処理および事後処理手順を自動的に実行します。これらの手順は、とりわけ、Naninovelの構成メニューを介して割り当てられたすべてのリソース(シナリオスクリプト、キャラクターの外観、BGMおよびSFXクリップなど)がビルドに含まれるようにします。
カスタムビルド環境(Cloud Build など)を使用している場合、またはカスタムスクリプトやコマンドラインからビルドを開始する場合は、ビルドの前と後にそれぞれ Naninovel.BuildProcessor.PreprocessBuild(BuildPlayerOptions) および Naninovel.BuildProcessor.PostprocessBuild() 静的メソッドを手動で呼び出す必要があります。
以下は、必要なNaninovel処理メソッドを呼び出すCloud Buildカスタムビルド処理スクリプトの例です。処理スクリプトの設定方法については、公式サービスドキュメント を参照してください。
public static class CustomBuildProcessor
{
#if UNITY_CLOUD_BUILD
public static void PreExport (BuildManifestObject manifest)
{
var options = new UnityEditor.BuildPlayerOptions();
var target = manifest.GetValue<string>("target").ToString().ToLower();
if (target.Contains("windows") && target.Contains("64"))
options.target = UnityEditor.BuildTarget.StandaloneWindows64;
else if (target.Contains("windows"))
options.target = UnityEditor.BuildTarget.StandaloneWindows;
else if (target.Contains("android"))
options.target = UnityEditor.BuildTarget.Android;
else if (target.Contains("webgl"))
options.target = UnityEditor.BuildTarget.WebGL;
else throw new System.ArgumentException($"Unhandled target: {target}");
Naninovel.BuildProcessor.PreprocessBuild(options);
}
#endif
public static void PostExport (string exportPath)
{
Naninovel.BuildProcessor.PostprocessBuild();
}
}カスタムコマンドにアセンブリ定義を使用する場合、Unityエディターがすべてのアセンブリをコンパイルする前にアセットのインポートを開始することがあり、Cloud Buildの使用時にビルドエラーの原因となります。これは、ビルドを開始する前にスクリプトアセットを再インポートすることで解決できます。例:
var scriptGuids = AssetDatabase.FindAssets("t:Naninovel.Script");
foreach (var scriptGuid in scriptGuids)
{
var scriptPath = AssetDatabase.GUIDToAssetPath(scriptGuid);
AssetDatabase.ImportAsset(scriptPath);
}GameCI などのGitHub Actionsを使用する場合は、プロジェクトをビルドする前に LFSがチェックアウトされている ことを確認してください。
- name: checkout
uses: actions/checkout@v4
with:
lfs: 'true'
- name: checkout LFS
uses: actions/checkout@v4
- run: git lfs pullエディターのビルドメニューからトリガーされる想定の独自のカスタムビルドハンドラーを使用している場合は、リソースプロバイダー構成メニューの Enable Build Processing プロパティをオフにして、Naninovelのハンドラーを無効にできます。プロパティを有効または無効にした後、変更を有効にするためにUnityエディターを再起動してください。