48 lines
1.2 KiB
C#
48 lines
1.2 KiB
C#
|
using System;
|
|||
|
|
|||
|
using UnityEditor;
|
|||
|
|
|||
|
namespace Unity.PlasticSCM.Editor.UI
|
|||
|
{
|
|||
|
internal static class EnumPopupSetting<E>
|
|||
|
{
|
|||
|
internal static E Load(
|
|||
|
string popupSettingName,
|
|||
|
E defaultValue)
|
|||
|
{
|
|||
|
string enumValue = EditorPrefs.GetString(
|
|||
|
GetSettingKey(popupSettingName));
|
|||
|
|
|||
|
if (string.IsNullOrEmpty(enumValue))
|
|||
|
return defaultValue;
|
|||
|
|
|||
|
return (E)Enum.Parse(typeof(E), enumValue);
|
|||
|
}
|
|||
|
|
|||
|
internal static void Save(
|
|||
|
E selected,
|
|||
|
string popupSettingName)
|
|||
|
{
|
|||
|
EditorPrefs.SetString(
|
|||
|
GetSettingKey(popupSettingName),
|
|||
|
selected.ToString());
|
|||
|
}
|
|||
|
|
|||
|
internal static void Clear(
|
|||
|
string popupSettingName)
|
|||
|
{
|
|||
|
EditorPrefs.DeleteKey(
|
|||
|
GetSettingKey(popupSettingName));
|
|||
|
}
|
|||
|
|
|||
|
static string GetSettingKey(string popupSettingName)
|
|||
|
{
|
|||
|
return string.Format(
|
|||
|
popupSettingName, PlayerSettings.productGUID,
|
|||
|
SELECTED_ENUM_VALUE_KEY);
|
|||
|
}
|
|||
|
|
|||
|
static string SELECTED_ENUM_VALUE_KEY = "SelectedEnumValue";
|
|||
|
}
|
|||
|
}
|