/// Recovers any persistent settings from the provided template public void RestorePeristentSettingsForTemplate(XmlTemplate template) { //Build options string buildOptionsString = EditorPrefs.GetString(GetPersistentSettingKey(PERSISTENT_SETTING_BUILD_OPTIONS, template)); if (!string.IsNullOrEmpty(buildOptionsString)) { try { BuildOptionCollection collection = JsonUtility.FromJson <BuildOptionCollection>(buildOptionsString); MergeInPersistentBuildOptions(collection); } catch {} } //Optional Usings string optionalUsingsString = EditorPrefs.GetString(GetPersistentSettingKey(PERSISTENT_SETTING_OPTIONAL_USINGS, template)); if (!string.IsNullOrEmpty(optionalUsingsString)) { try { OptionalUsingCollection collection = JsonUtility.FromJson <OptionalUsingCollection>(optionalUsingsString); MergeInPersistentOptionalUsings(collection); } catch {} } }
private void MergeInPersistentOptionalUsings(OptionalUsingCollection collection) { foreach (OptionalUsing savedOption in collection.optionalUsings) { OptionalUsing existingOption = this.optionalUsings.FirstOrDefault(_opt => _opt.id == savedOption.id); if (existingOption != null) { existingOption.isEnabled = savedOption.isEnabled; } else if (savedOption.isCustom) { this.optionalUsings.Add(savedOption); } } }