Ejemplo n.º 1
0
        public static void      SetSettings(NGSettings settings)
        {
            HQ.LastSettings = HQ.settings;
            HQ.settings     = settings;

            if (HQ.SettingsChanged != null)
            {
                HQ.SettingsChanged();
            }
        }
Ejemplo n.º 2
0
        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();
                            }
                        });
                    }
                };
            }
        }