using ET; using GFGGame; using System; using System.IO; using UnityEditor; using UnityEditor.Compilation; using UnityEngine; namespace GFGEditor { public class ToolsMenu : Editor { enum TOOL_MENU_PRIORITY { UpdateAndImportAll, UpdateAndImportExcel, UpdateAndImportArtRes, CheckExcel, BuildBundlesRes, UpdateProject, ImportExcel, ImportArtRes, } [MenuItem("策划/更新并导入所有", false, (int)TOOL_MENU_PRIORITY.UpdateAndImportAll)] static void UpdateAndImportAll() { UpdateProject(); UpdateAndImportArtRes(); UpdateAndImportExcel(); } [MenuItem("策划/更新并导入Excel", false, (int)TOOL_MENU_PRIORITY.UpdateAndImportExcel)] static void UpdateAndImportExcel() { UpdateExcel(); ImportExcel(); } [MenuItem("策划/更新并导入美术资源", false, (int)TOOL_MENU_PRIORITY.UpdateAndImportArtRes)] static void UpdateAndImportArtRes() { UpdateArtRes(); ImportArtRes(); } [MenuItem("策划/更新至内网版本", false, (int)TOOL_MENU_PRIORITY.BuildBundlesRes)] public static void BuildBundlesRes() { EditorUtility.DisplayProgressBar("进度", "正在更新至内网", 1); VEngine.Editor.Builds.BuildScript.BuildCustomBundles(new string[] { "Res", "ResIn" }); EditorUtility.ClearProgressBar(); CommitProject(); } [MenuItem("策划/其它/更新项目", false, (int)TOOL_MENU_PRIORITY.UpdateProject)] static void UpdateProject() { EditorUtility.DisplayProgressBar("进度", "正在更新项目", 1); ProcessUtil.ExcuteBat("Assets/Editor/Bat/", "updateGame.bat"); EditorUtility.ClearProgressBar(); } public static void UpdateExcel() { EditorUtility.DisplayProgressBar("进度", "正在更新表格", 1); ProcessUtil.ExcuteBat("Assets/Editor/Bat/", "updateExcel.bat"); EditorUtility.ClearProgressBar(); } public static void UpdateArtRes() { EditorUtility.DisplayProgressBar("进度", "正在更新美术资源", 1); ProcessUtil.ExcuteBat("Assets/Editor/Bat/", "updateArtRes.bat", ImportArtResTool.ResRootDirName); EditorUtility.ClearProgressBar(); } static void CommitProject() { EditorUtility.DisplayProgressBar("进度", "正在提交项目", 1); ProcessUtil.ExcuteBat("Assets/Editor/Bat/", "commitGame.bat"); EditorUtility.ClearProgressBar(); } [MenuItem("策划/其它/导入配置表", false, (int)TOOL_MENU_PRIORITY.ImportExcel)] public static void ImportExcel() { Log.ILog = new UnityLogger(); ET.Options.Instance = new ET.Options(); EditorUtility.DisplayProgressBar("进度", "正在导入表格", 1); SqliteController.Instance.dirPath = Path.Combine(Environment.CurrentDirectory, ResPathUtil.CONFIG_DIR_PATH); SqliteController.Instance.Init(true, null); SQLiteHelper.Instance.OpenConnection(); try { SQLiteHelper.Instance.ClearAllTables(); CodeTemplateFactory.Init(); if (!Directory.Exists(ExcelConfig.configCodePath)) { Directory.CreateDirectory(ExcelConfig.configCodePath); } if (!Directory.Exists(ExcelConfig.configArrayCodePath)) { Directory.CreateDirectory(ExcelConfig.configArrayCodePath); } ExcelReader.ReadExcel(CodeBuilder.GenerateCode); } catch (Exception e) { throw (e.InnerException); } finally { SQLiteHelper.Instance.CloseConnection(); } //扫描物品表获取途径并更新数据库 ItemApproachScanner.startScan(); AssetDatabase.Refresh(); EditorUtility.ClearProgressBar(); } [MenuItem("策划/检查配置表", false, (int)TOOL_MENU_PRIORITY.CheckExcel)] public static void CheckExcel() { EditorUtility.DisplayProgressBar("进度", "正在检查表格", 1); //检查表格部分内容 ExcelChecker.StartCheck(); EditorUtility.ClearProgressBar(); } [MenuItem("策划/其它/导入美术资源", false, (int)TOOL_MENU_PRIORITY.ImportArtRes)] public static void ImportArtRes() { EditorUtility.DisplayProgressBar("进度", "正在导入美术资源", 1); ImportArtResTool.Import(); EditorUtility.ClearProgressBar(); } [MenuItem("Tools/ImageClip/ImportClipImage")] public static void ImportClipImage() { ImportArtResTool.ImportClipImage(); } [MenuItem("Tools/ImageClip/ReadImagePosition")] public static void ReadImagePosition() { ImagesClip.ReadImagePosition(); } [MenuItem("Tools/ImageClip/DeleteUnnecessaryImagePos")] public static void DeleteUnnecessaryImagePos() { FileUtil.DeleteUnnecessaryImagePos(ImportArtResTool.DressUpTargetPath); FileUtil.DeleteUnnecessaryImageMD5(ImportArtResTool.DressUpMd5FileSaveName); } [MenuItem("策划/其它/清除冗余文件")] public static void DeleteUnnecessaryImage() { FileUtil.DeleteUnnecessaryImage(ImportArtResTool.DressUpTargetPath, ImportArtResTool.DressUpMd5FileSaveName); FileUtil.DeleteUnnecessaryImage(ImportArtResTool.BgTargetPath, ImportArtResTool.BgMd5FileSaveName); FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcPicSTargetPath, ImportArtResTool.PicSMd5FileSaveName); FileUtil.DeleteUnnecessaryImage(ImportArtResTool.FieldGuideIconTargetPath, ImportArtResTool.FieldGuideIconMd5FileSaveName); FileUtil.DeleteUnnecessaryImage(ImportArtResTool.MusicTargetPath, ImportArtResTool.MusicMd5FileSaveName); FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ItemIconTargetPath, ImportArtResTool.IconMd5FileSaveName); FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcHeadTargetPath, ImportArtResTool.HeadMd5FileSaveName); FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcPicTargetPath, ImportArtResTool.PicFMd5FileSaveName); FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardBgTargetPath, ImportArtResTool.CardBgMd5FileSaveName); FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardIconTargetPath, ImportArtResTool.CardMd5FileSaveName); // FileUtil.DeleteUnnecessaryImage(ImportArtsRes.DressUpAnimationTargetPath); // FileUtil.DeleteUnnecessaryImage(ImportArtsRes.EffectTargetPath); FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.DressUpAnimationTargetPath, ImportArtResTool.DressUpAnimationSrcPaths[0]); FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.EffectTargetPath, ImportArtResTool.EffectSrcPaths[0]); FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.MaterialTargetPath, ImportArtResTool.MaterialSrcPaths[0]); FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.TextureTargetPath, ImportArtResTool.TextureSrcPaths[0]); } [MenuItem("策划/其它/清除冗余动画")] public static void DeleteUnnecessaryAni() { FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.DressUpAnimationTargetPath, ImportArtResTool.DressUpAnimationSrcPaths[0]); FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.EffectTargetPath, ImportArtResTool.EffectSrcPaths[0]); FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.MaterialTargetPath, ImportArtResTool.MaterialSrcPaths[0]); FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.TextureTargetPath, ImportArtResTool.TextureSrcPaths[0]); } [MenuItem("Tools/List Player Assemblies in Console")] public static void PrintAssemblyNames() { UnityEngine.Debug.Log("== Player Assemblies =="); Assembly[] playerAssemblies = CompilationPipeline.GetAssemblies(AssembliesType.Player); foreach (var assembly in playerAssemblies) { UnityEngine.Debug.Log(assembly.name); } } [MenuItem("Tools/BuildTest/SetBundlesResTestDir")] public static void SetBundlesResTestDir() { VEngine.Utility.buildPath = "Bundles1"; } [MenuItem("Tools/BuildTest/ResetBundlesResDir")] public static void ResetBundlesResTestDir() { VEngine.Utility.buildPath = "Bundles"; } } }