コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】ProjectSettings.asset のバックアップと復元を行うクラス

リポジトリ

使用例

using System.Linq;
using Kogane;
using UnityEditor;
using UnityEngine;

public static class Example
{
    [MenuItem( "Tools/Hoge" )]
    public static void Hoge()
    {
        const BuildTargetGroup buildTargetGroup = BuildTargetGroup.Standalone;

        var options = new BuildPlayerOptions
        {
            scenes           = EditorBuildSettings.scenes.Select( x => x.path ).ToArray(),
            locationPathName = "Build/Game.exe",
            targetGroup      = buildTargetGroup,
            target           = BuildTarget.StandaloneWindows64,
            options          = BuildOptions.AutoRunPlayer,
        };

        // このスコープ内で変更された ProjectSettings.asset の内容を
        // スコープを抜ける時に元に戻します
        using ( new BackupProjectSettingsScope() )
        {
            PlayerSettings.SetScriptingBackend( buildTargetGroup, ScriptingImplementation.IL2CPP );

            BuildPipeline.BuildPlayer( options );
        }
    }
}