/// 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 MergeInPersistentBuildOptions(BuildOptionCollection collection) { foreach (BuildOption savedOption in collection.buildOptions) { if (savedOption.textValue != null) { BuildOption existingOption = this.buildOptions.FirstOrDefault(_opt => _opt.id == savedOption.id); if (existingOption != null) { existingOption.SetTextValue(savedOption.textValue); } } } }