namespace Guru.Editor.Adjust { using System.IO; using UnityEditor; using UnityEngine; /// /// 修改器API /// public static class GuruAdjustSdkAPI { // ------------ VERSION INFO ------------ public const string Version = "0.1.0"; public const string SdkVersion = "4.36.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 /// /// 创建AdjustSettings /// /// public static AdjustSettings LoadOrCreateAdjustSettings() { // 若原始文件存在 if (File.Exists(Path.Combine(Application.dataPath.Replace("Assets", ""), AdjustSettingsAssetPath))) { return AssetDatabase.LoadAssetAtPath(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(AssetDatabase.GUIDToAssetPath(guids[0])); } /// /// 创建AppLovinSettings 配置默认路径 /// /// 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(); 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] --- Create AdjustSettings at: \n{AdjustSettingsAssetPath}"); return settings; } #endregion public static void ApplyMods() { } } }