AnalyzerSettingsCrud.cs 876 B

123456789101112131415161718192021222324
  1. using System.IO;
  2. using UnityEditor;
  3. using UnityEngine;
  4. using IntelligentProjectAnalyzer.Analyzer;
  5. namespace IntelligentProjectAnalyzer.Editor
  6. {
  7. public static class AnalyzerSettingsCrud
  8. {
  9. private const string SettingsPath = "Assets/IntelligentProjectAnalyzer/Editor/AnalyzerSettings.asset";
  10. public static AnalyzerSettings GetOrCreateSettings()
  11. {
  12. var settings = AssetDatabase.LoadAssetAtPath<AnalyzerSettings>(SettingsPath);
  13. if (settings != null) return settings;
  14. settings = ScriptableObject.CreateInstance<AnalyzerSettings>();
  15. var dirName = Path.GetDirectoryName(SettingsPath) ?? "Assets";
  16. Directory.CreateDirectory(dirName);
  17. AssetDatabase.CreateAsset(settings, SettingsPath);
  18. AssetDatabase.SaveAssets();
  19. return settings;
  20. }
  21. }
  22. }