///  <summary>
        ///         Add or gets an option from <see cref="Instance"/>
        ///  </summary>
        ///  <typeparam name="T"></typeparam>
        ///  <param name="key"></param>
        ///  <param name="defaultValue"></param>
        ///  <returns></returns>
        public static T AddOrGetOption <T>(string key, T defaultValue = default(T))
        {
            UnityEditor.SettingsManagement.Settings settingsInstance = Instance;
            if (!settingsInstance.ContainsKey <T>(key))
            {
                SetOption <T>(key, defaultValue);
            }

            return(settingsInstance.Get <T>(key));
        }
 /// <summary>
 ///		Sets an option from <see cref="Instance"/>
 /// </summary>
 /// <param name="key"></param>
 /// <param name="value"></param>
 /// <typeparam name="T"></typeparam>
 public static void SetOption <T>(string key, T value)
 {
     UnityEditor.SettingsManagement.Settings settingsInstance = Instance;
     settingsInstance.Set(key, value);
     settingsInstance.Save();
 }