internal static void LoadSharedNGSetting(bool skipLoad = false) { if (skipLoad == false && NGSettings.sharedSettings != null) { HQ.SetSettings(NGSettings.sharedSettings); return; } NGSettings asset = null; if (skipLoad == false) { asset = NGSettings.LoadSharedSettings(); if (asset != null) { asset.hideFlags = HideFlags.DontSave; } } if (skipLoad == true || asset == null) { asset = NGSettings.CreateSharedSettings(); asset.hideFlags = HideFlags.DontSave; Directory.CreateDirectory(Path.GetDirectoryName(NGSettings.GetSharedSettingsPath())); HQ.SaveSharedNGSettings(asset); } else { NGSettings.sharedSettings = asset; } HQ.SetSettings(asset); }
public static void CreateNGSettings(string path) { try { NGSettings asset = ScriptableObject.CreateInstance <NGSettings>(); AssetDatabase.CreateAsset(asset, path); AssetDatabase.SaveAssets(); NGEditorPrefs.SetString(Constants.ConfigPathKeyPref, path, true); HQ.SetSettings(asset); // Need to skip many frames before really writing the data. Don't know why it requires 2 frames. EditorApplication.delayCall += () => { EditorApplication.delayCall += () => { HQ.InvalidateSettings(); AssetDatabase.SaveAssets(); }; }; } catch (Exception ex) { InternalNGDebug.LogException(ex); HQ.SetSettings(null); } }