using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEditor.Presets; using UnityEngine; namespace BuildCli { public class BuildManager { public Preset SelectedBuildPreset; public Preset[] PlayerSettingsPresetsInProject; public void OpenBuildWindow() { #if UNITY_6000_0_OR_NEWER EditorApplication.ExecuteMenuItem("File/Build Profiles"); #else var buildPlayerWindow = EditorWindow.GetWindow("Build Settings"); buildPlayerWindow.Show(); #endif } public static void ApplyPreset(Preset preset) { var projectSettings = Resources.FindObjectsOfTypeAll(); foreach (var settings in projectSettings) { preset.ApplyTo(settings); } } public List GenerateBuildSettingsList() { PlayerSettingsPresetsInProject = AssetDatabase.FindAssets("t:Preset") .Select(AssetDatabase.GUIDToAssetPath) .Where(path => path.Contains("PlayerSettings")) .Select(AssetDatabase.LoadAssetAtPath) .ToArray(); var buildPresetsList = new List(PlayerSettingsPresetsInProject.Select(preset => preset.name)); return buildPresetsList; } } }