はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】BuildOptions.CleanBuildCacheが有効かどうかをEditor.Logから見分ける方法

はじめに

今回はBuildOptions.CleanBuildCacheが効いているどうかを判定する方法について紹介したいと思います。

docs.unity3d.com
www.hanachiru-blog.com

環境

Unity 2022.3.8f1

概要

インクリメンタルビルドパイプラインを使用していると差分のみ再ビルドされるようになりますが、一部問題になるケースもあったりします。そこでスクリプトからビルドをする際にはBuildOptions.CleanBuildCacheを用いることで一度キャッシュを削除してからクリーンビルドを行うことができます。

Clear all cached build results, resulting in a full rebuild of all scripts and all player data.

// DeepL翻訳
キャッシュされたビルド結果をすべてクリアし、すべてのスクリプトとすべてのプレイヤーデータを完全に再構築します。

BuildOptions-CleanBuildCache - Unity スクリプトリファレンス

// サンプル
[MenuItem("Tools/Build StandaloneOSX")]
public static void Build()
{
    // locationPathName : 保存先のパス(プロジェクトフォルダからの相対パス)
    // options : BuildOptions.CleanBuildCacheを指定することで「キャッシュを削除して」ビルドできる
    // scenes : ビルドに含めるシーンのプロジェクトフォルダからの相対パス(空の場合、現在開いているシーン)
    // target : どのプラットフォームか
    var options = new BuildPlayerOptions()
    {
        locationPathName = "Build/App.exe",
        options = BuildOptions.CleanBuildCache,
        scenes = EditorBuildSettings.scenes.Select(x => x.path).ToArray(),
        target = BuildTarget.StandaloneOSX,
    };

    var buildReport = BuildPipeline.BuildPlayer(options);

    if (buildReport.summary.result == BuildResult.Succeeded)
    {
        Debug.Log($"Build Succeeded. : {buildReport.summary.outputPath}");
    }
    else
    {
        Debug.Log("Build Failed.");
    }
}

【Unity】キャッシュされたビルドの成果物を削除してからビルドする方法(BuildOptions.CleanBuildCache) - はなちるのマイノート

ただこれがちゃんと動作してくれているか知る方法がパッと分からなかったため、調査してみたのでその結果を紹介したいと思います。

調べ方

Editor.Logの中に以下のメッセージが含まれているか確認すればOKです。

Rebuilding Data files because BuildOptions.CleanBuildCache is set.

またEditor.Logの場所ですが、以下に入っていますね。

OS ログファイル
macOS ~/Library/Logs/Unity/Editor.log
Windows C:\Users\username\AppData\Local\Unity\Editor\Editor.log

ログファイル - Unity マニュアル

またUnity EditorからはConsoleウィンドウの右上の三点リーダーを押し、Open Editor Logを選択すれば開くことができます。

Open Editor Log