77 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C#
		
	
	
		
		
			
		
	
	
			77 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C#
		
	
	
| 
								 | 
							
								using System.IO;
							 | 
						||
| 
								 | 
							
								using UnityEditor;
							 | 
						||
| 
								 | 
							
								using UnityEditor.Compilation;
							 | 
						||
| 
								 | 
							
								using UnityEngine;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Guru.Editor.Max
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public static class GuruMaxCodeFixer
							 | 
						||
| 
								 | 
							
								    {   
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        public static void Compile() => CompilationPipeline.RequestScriptCompilation();
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /// <summary>
							 | 
						||
| 
								 | 
							
								        /// Gets the path of the asset in the project for a given MAX plugin export path.
							 | 
						||
| 
								 | 
							
								        /// </summary>
							 | 
						||
| 
								 | 
							
								        /// <param name="exportPath">The actual exported path of the asset.</param>
							 | 
						||
| 
								 | 
							
								        /// <returns>The exported path of the MAX plugin asset or the default export path if the asset is not found.</returns>
							 | 
						||
| 
								 | 
							
								        public static string GetAssetPathFromPackageForExportPath(string exportPath)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            var defaultPath = Path.Combine(GuruMaxSdkAPI.PackageDataPath, exportPath);
							 | 
						||
| 
								 | 
							
								            var assetLabelToFind =
							 | 
						||
| 
								 | 
							
								                "l:al_max_export_path-" +
							 | 
						||
| 
								 | 
							
								                exportPath.Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
							 | 
						||
| 
								 | 
							
								            var assetGuids = AssetDatabase.FindAssets(assetLabelToFind);
							 | 
						||
| 
								 | 
							
								            return assetGuids.Length < 1 ? defaultPath : AssetDatabase.GUIDToAssetPath(assetGuids[0]);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        /// <summary>
							 | 
						||
| 
								 | 
							
								        /// 更新所有的修改器
							 | 
						||
| 
								 | 
							
								        /// </summary>
							 | 
						||
| 
								 | 
							
								        public static void ApplyAllMods()
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // --- 修改 AppLovinMax
							 | 
						||
| 
								 | 
							
								            Debug.Log($"------ #1. Apply AppLovinMax");
							 | 
						||
| 
								 | 
							
								            ApplovinMod.Apply();
							 | 
						||
| 
								 | 
							
								            
							 | 
						||
| 
								 | 
							
								            // --- 修复 Amazon 依赖
							 | 
						||
| 
								 | 
							
								            Debug.Log($"------ #2. Apply Amazon");
							 | 
						||
| 
								 | 
							
								            AmazonMod.Apply();
							 | 
						||
| 
								 | 
							
								            
							 | 
						||
| 
								 | 
							
								            // --- 修复 Pubmatic 依赖
							 | 
						||
| 
								 | 
							
								            Debug.Log($"------ #3. Apply Pubmatic");
							 | 
						||
| 
								 | 
							
								            PubmaticMod.Apply();
							 | 
						||
| 
								 | 
							
								            
							 | 
						||
| 
								 | 
							
								            Compile();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if GURU_SDK_DEV
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        //---------- 编辑器快捷菜单 -------------------
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        [MenuItem("Guru/Dev/Max/Apply All Mods")]
							 | 
						||
| 
								 | 
							
								        private static void DevInjectCodeFix()
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            ApplyAllMods();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        [MenuItem("Guru/Dev/Max/Show Max Menu")]
							 | 
						||
| 
								 | 
							
								        private static void DevRecoverMenu()
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            var res = ApplovinMod.MenuItemsRecover();
							 | 
						||
| 
								 | 
							
								            if(res) Compile();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |