コンテンツにスキップ

カスタムビルド環境 ​

エディターの ビルドメニュー ↗ を使用してプロジェクトをビルドする場合、Naninovelは追加の事前処理および事後処理手順を自動的に実行します。これらの手順は、とりわけ、Naninovelの構成メニューを介して割り当てられたすべてのリソース(シナリオスクリプト、キャラクターの外観、BGMおよびSFXクリップなど)がビルドに含まれるようにします。

カスタムビルド環境(Cloud Build ↗ など)を使用している場合、またはカスタムスクリプトやコマンドラインからビルドを開始する場合は、ビルドの前と後にそれぞれ Naninovel.BuildProcessor.PreprocessBuild(BuildPlayerOptions) および Naninovel.BuildProcessor.PostprocessBuild() 静的メソッドを手動で呼び出す必要があります。

以下は、必要なNaninovel処理メソッドを呼び出すCloud Buildカスタムビルド処理スクリプトの例です。処理スクリプトの設定方法については、公式サービスドキュメント ↗ を参照してください。

cs
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の使用時にビルドエラーの原因となります。これは、ビルドを開始する前にスクリプトアセットを再インポートすることで解決できます。例:

cs
var scriptGuids = AssetDatabase.FindAssets("t:Naninovel.Script");
foreach (var scriptGuid in scriptGuids)
{
    var scriptPath = AssetDatabase.GUIDToAssetPath(scriptGuid);
    AssetDatabase.ImportAsset(scriptPath);
}

GameCI ↗ などのGitHub Actionsを使用する場合は、プロジェクトをビルドする前に LFSがチェックアウトされている ↗ ことを確認してください。

yaml
  - 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エディターを再起動してください。