0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UnityのBuildProfileの設定をスクリプトから変更する方法

Last updated at Posted at 2025-06-11

初めに

BuildProfileの設定をエディタスクリプトから変更する方法がわかりづらかったので共有です。

実装手順

BuildProfileアセットの読み込みとPlayerSettings取得

BuildProfileアセットを読み込み、リフレクションでPlayerSettingsを取得します。PlayerSettingsはinternalフィールドのため、リフレクションが必要です。

var profile = AssetDatabase.LoadAssetAtPath<BuildProfile>("path");
var playerSettingsField = profile.GetType().GetField("playerSettings", BindingFlags.NonPublic | BindingFlags.Instance);
var playerSettings = (UnityEngine.Object)playerSettingsField.GetValue(profile);
var serializedSettings = new SerializedObject(playerSettings);

設定値の変更

SerializedPropertyを使って、目的のプロパティを変更します。今回の場合はproductNameを変更しています。
プロパティ名はBuild Profileの設定ファイルのInspectorのCopy Property Pathから確認できます

var productNameProperty = serializedSettings.FindProperty("productName");
if (productNameProperty != null)
{
    productNameProperty.stringValue = newProductName;
}

変更の適用と保存

変更をSerializedObjectに適用し、内部メソッドを呼び出してアセットを保存します。ApplyModifiedProperties() だけでは設定が保存されないため、BuildProfileModuleUtil.SerializePlayerSettings() の呼び出しが必要です。
https://github.com/Unity-Technologies/UnityCsReference/blob/4b463aa72c78ec7490b7f03176bd012399881768/Editor/Mono/BuildProfile/BuildProfileModuleUtil.cs#L448-L451

// メモリ上で変更を適用
serializedSettings.ApplyModifiedProperties();

// BuildProfileModuleUtil.SerializePlayerSettings()を呼び出し
var coreModuleAssembly = Assembly.Load("UnityEditor.CoreModule");
var buildProfileModuleUtilType = coreModuleAssembly.GetType("UnityEditor.Build.Profile.BuildProfileModuleUtil");
var serializePlayerSettingsMethod = buildProfileModuleUtilType.GetMethod(
    "SerializePlayerSettings",
    BindingFlags.Public | BindingFlags.Static
);
serializePlayerSettingsMethod.Invoke(null, new object[] { profile });

// アセットを保存
EditorUtility.SetDirty(profile);
AssetDatabase.SaveAssets();

最後に

BuildProfileは使いながら学んでいるので、もっといい方法があれば知りたいです。
AIでも探してくれなかったので、AIの糧になればなと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?