93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
| 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 = "";
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 加载配置
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         public static GuruServiceConfig LoadConfig()
 | |
|         {
 | |
|             var a = AssetDatabase.FindAssets($"*{DefaultFileName}* t:TextAsset");
 | |
|             if (a == null || a.Length == 0)
 | |
|             {
 | |
|                 Debug.Log($"<color=orange>--- Can't ind guru-services file</color>");
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 var p = AssetDatabase.GUIDToAssetPath(a[0]);
 | |
|                 var fp = Path.GetFullPath(p);
 | |
|                 if (File.Exists(fp)) _selectedFilePath = fp;
 | |
|                 var t = AssetDatabase.LoadAssetAtPath<TextAsset>(p);
 | |
|                 // Debug.Log($"<color=#88ff00>--- find services file:{p} \n{t.text}</color>");
 | |
|                 return JsonMapper.ToObject<GuruServiceConfig>(t.text);
 | |
|             }
 | |
|             return null;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 保存配置
 | |
|         /// </summary>
 | |
|         /// <param name="config"></param>
 | |
|         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}");
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 创建空配置
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         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);
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
|     }
 | |
| } |