概要
using System.Linq; using System.Text; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var options = new BuildPlayerOptions { scenes = EditorBuildSettings.scenes.Select( x => x.path ).ToArray(), locationPathName = "app.apk", target = BuildTarget.Android, options = BuildOptions.DetailedBuildReport }; var buildReport = BuildPipeline.BuildPlayer( options ); var stringBuilder = new StringBuilder(); foreach ( var scenesUsingAssets in buildReport.scenesUsingAssets ) { foreach ( var scenesUsingAsset in scenesUsingAssets.list ) { stringBuilder.Append ( $@"* {scenesUsingAsset.assetPath} {string.Join( "\n", scenesUsingAsset.scenePaths.Select( x => $" * {x}" ) )} " ); } } Debug.Log( stringBuilder.ToString() ); } }
BuildOptions.DetailedBuildReport を使うと BuildReport の scenesUsingAssets で
どのシーンがどのアセットを参照しているか確認できるようになる
備考
ビルドに含まれるシーンやスクリプトに変更がない状態でビルドした場合は
参照の情報を取得できない?