108 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C#
		
	
	
| namespace Guru.Editor.Adjust
 | |
| {
 | |
|     using System.IO;
 | |
|     using UnityEditor;
 | |
|     using UnityEngine;
 | |
| 
 | |
|     /// <summary>
 | |
|     /// 修改器API
 | |
|     /// </summary>
 | |
|     public static class GuruAdjustSdkAPI
 | |
|     {
 | |
|         // ------------ VERSION INFO ------------
 | |
|         public const string Version = "0.1.0";
 | |
|         public const string SdkVersion = "4.38.0";
 | |
|         // ------------ VERSION INFO ------------
 | |
| 
 | |
|         public const string PackageName = "com.guru.unity.adjust";
 | |
|         public static readonly string AdjustSettingsRootDir = "Assets/Guru/Editor";
 | |
|         public static string AdjustSettingsAssetPath = $"{AdjustSettingsRootDir}/AdjustSettings.asset";
 | |
| 
 | |
|         public static string PackageEditorRoot
 | |
|         {
 | |
|             get
 | |
|             {
 | |
| #if GURU_SDK_DEV
 | |
|                 return $"__packages/{PackageName}/Adjust/Editor";  
 | |
| #endif
 | |
|                 return $"Packages/{PackageName}/Adjust/Editor";
 | |
|             }
 | |
|         }
 | |
|         public static string AdjustSettingsPackagePath = $"{PackageEditorRoot}/AdjustSettings.asset";
 | |
| 
 | |
|         #region AdjustSettings
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 创建AdjustSettings
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         public static AdjustSettings LoadOrCreateAdjustSettings()
 | |
|         {
 | |
|             // 若原始文件存在        
 | |
|             if (File.Exists(Path.Combine(Application.dataPath.Replace("Assets", ""), AdjustSettingsAssetPath)))
 | |
|             {
 | |
|                 return AssetDatabase.LoadAssetAtPath<AdjustSettings>(AdjustSettingsAssetPath);
 | |
|             }
 | |
|             // 否则开始查找文件
 | |
|             var guids = AssetDatabase.FindAssets($"{nameof(AdjustSettings)} t:ScriptableObject");
 | |
|             int removed = 0;
 | |
|             if (guids.Length > 0)
 | |
|             {
 | |
|                 foreach (var g in guids)
 | |
|                 {
 | |
|                     var path = AssetDatabase.GUIDToAssetPath(g);
 | |
| 
 | |
|                     Debug.Log($"--- Found assets at path:{path}");
 | |
| 
 | |
| 
 | |
|                     if (!path.StartsWith(AdjustSettingsRootDir))
 | |
|                     {
 | |
|                         AssetDatabase.DeleteAsset(path);
 | |
|                         removed++;
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             if (guids.Length == 0 || removed >= guids.Length)
 | |
|             {
 | |
|                 return CreateDefaultAdjustSettings(); // 创建默认的AppLovin Settings 配置
 | |
|             }
 | |
|             
 | |
|             return AssetDatabase.LoadAssetAtPath<AdjustSettings>(AssetDatabase.GUIDToAssetPath(guids[0]));
 | |
|         }
 | |
|         
 | |
|         /// <summary>
 | |
|         /// 创建AppLovinSettings 配置默认路径
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         private static AdjustSettings CreateDefaultAdjustSettings()
 | |
|         {
 | |
|             // Create Root dir
 | |
|             var expDir =
 | |
|                 new DirectoryInfo(Path.Combine(Application.dataPath.Replace("Assets", ""), AdjustSettingsRootDir));
 | |
|             if (!expDir.Exists) expDir.Create();
 | |
| 
 | |
|             // Make a new one
 | |
|             var settings = ScriptableObject.CreateInstance<AdjustSettings>();
 | |
|             SerializedObject so = new SerializedObject(settings);
 | |
|             SerializedProperty p;
 | |
|             p = so.FindProperty("m_EditorClassIdentifier._iOSFrameworkAdSupport"); // 引入 AdSupport
 | |
|             if (p != null)  p.boolValue = true;
 | |
|             p = so.FindProperty("m_EditorClassIdentifier._iOSFrameworkAdServices"); // 引入 AdServices
 | |
|             if (p != null)  p.boolValue = true;
 | |
|             so.ApplyModifiedProperties();
 | |
|             AssetDatabase.CreateAsset(settings, AdjustSettingsAssetPath);
 | |
|             AssetDatabase.SaveAssetIfDirty(settings);
 | |
|             AssetDatabase.Refresh();
 | |
|             Debug.Log($"[Guru] <color=#88ff00>--- Create AdjustSettings at:</color> \n{AdjustSettingsAssetPath}");
 | |
|             return settings;
 | |
|         }
 | |
|         
 | |
|         #endregion
 | |
|         
 | |
|         public static void ApplyMods()
 | |
|         {
 | |
|             
 | |
|         }
 | |
|     }
 | |
| } |