AlicizaX/Client/Assets/Editor/PlayModePlus/BuildManager.cs
2025-01-24 16:21:00 +08:00

47 lines
1.4 KiB
C#

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<BuildPlayerWindow>("Build Settings");
buildPlayerWindow.Show();
#endif
}
public static void ApplyPreset(Preset preset)
{
var projectSettings = Resources.FindObjectsOfTypeAll<PlayerSettings>();
foreach (var settings in projectSettings)
{
preset.ApplyTo(settings);
}
}
public List<string> GenerateBuildSettingsList()
{
PlayerSettingsPresetsInProject = AssetDatabase.FindAssets("t:Preset")
.Select(AssetDatabase.GUIDToAssetPath)
.Where(path => path.Contains("PlayerSettings"))
.Select(AssetDatabase.LoadAssetAtPath<Preset>)
.ToArray();
var buildPresetsList = new List<string>(PlayerSettingsPresetsInProject.Select(preset => preset.name));
return buildPresetsList;
}
}
}