public static void SetSettings(NGSettings settings) { HQ.LastSettings = HQ.settings; HQ.settings = settings; if (HQ.SettingsChanged != null) { HQ.SettingsChanged(); } }
private static void CheckSettingsVersion() { if (HQ.settings != null && HQ.settings.version != NGSettings.Version) { EditorApplication.delayCall += () => { if (EditorUtility.DisplayDialog(Constants.PackageTitle, string.Format(LC.G("Preferences_AskResetSettings"), HQ.settings.version, NGSettings.Version), LC.G("Yes"), LC.G("No")) == true) { GUICallbackWindow.Open(() => { SerializedObject obj = new SerializedObject(HQ.settings); NGSettings newSettings = ScriptableObject.CreateInstance <NGSettings>(); newSettings.hideFlags = HQ.settings.hideFlags; if (NGSettings.sharedSettings == HQ.settings) { File.Delete(NGSettings.GetSharedSettingsPath()); NGSettings.sharedSettings = newSettings; } SerializedObject newObject = new SerializedObject(newSettings); SerializedProperty it = obj.GetIterator(); it.Next(true); SerializedProperty end = it.GetEndProperty(); while (SerializedProperty.EqualContents(it, end) == false && it.Next(true) == true) { newObject.CopyFromSerializedProperty(it); } newObject.ApplyModifiedProperties(); string path = AssetDatabase.GetAssetPath(HQ.settings.GetInstanceID()); if (string.IsNullOrEmpty(path) == false) { AssetDatabase.CreateAsset(newSettings, path); } HQ.settings = newSettings; if (HQ.SettingsChanged != null) { HQ.SettingsChanged(); } }); } }; } }