using UnityEngine; using Guru; using NUnit.Framework; namespace Guru.Editor { using System.IO; using UnityEditor; using Guru.LitJson; public class EditorGuruServiceIO { private static readonly string DefaultFileName = "guru-service"; private static string DefaultFilePath = Path.GetFullPath(Path.Combine(Application.dataPath, $"{DefaultFileName}.json")); private static string _selectedFilePath = ""; /// /// 加载配置 /// /// public static GuruServiceConfig LoadConfig() { var a = AssetDatabase.FindAssets($"*{DefaultFileName}* t:TextAsset"); if (a == null || a.Length == 0) { Debug.Log($"--- Can't ind guru-services file"); } else { var p = AssetDatabase.GUIDToAssetPath(a[0]); var fp = Path.GetFullPath(p); if (File.Exists(fp)) _selectedFilePath = fp; var t = AssetDatabase.LoadAssetAtPath(p); // Debug.Log($"--- find services file:{p} \n{t.text}"); return JsonMapper.ToObject(t.text); } return null; } /// /// 保存配置 /// /// internal static void SaveConfig(GuruServiceConfig config = null) { if (config == null) { config = new GuruServiceConfig(); } var jw = new JsonWriter() { PrettyPrint = true, }; JsonMapper.ToJson(config, jw); var json = jw.ToString(); if (string.IsNullOrEmpty(_selectedFilePath)) _selectedFilePath = DefaultFilePath; File.WriteAllText(_selectedFilePath, json); Debug.Log($"Save config to {_selectedFilePath}"); } /// /// 创建空配置 /// /// internal static GuruServiceConfig CreateEmpty() { var cfg = new GuruServiceConfig(); cfg.version = GuruSDK.Version; cfg.app_settings = new GuruAppSettings(); cfg.ad_settings = new GuruAdSettings(); cfg.adjust_settings = new GuruAdjustSettings(); cfg.fb_settings = new GuruFbSettings(); return cfg; } [Test] public static void Test_SaveConfig() { var cfg = CreateEmpty(); SaveConfig(cfg); } } }