public static void AllAnalysisAsset() { _allAssets.Clear(); List <string> assetPaths = EPathHelper.GetAssetsPath(EAssetBundleConst.MAIN_RES_DRIECTORY, true); int length = assetPaths.Count; for (int i = 0; i < length; i++) { EditorUtility.DisplayProgressBar("分析主资源", assetPaths[i], (float)(i + 1) / length); AddAsset(assetPaths[i], true); string[] deps = AssetDatabase.GetDependencies(assetPaths[i], true); for (int j = 0; j < deps.Length; j++) { if (assetPaths[i] == deps[j]) { continue; } AddAsset(deps[j], false); } } foreach (var info in _allAssets) { info.Value.AnalyzeAsset(); } EditorUtility.ClearProgressBar(); EditorUtility.DisplayDialog("分析资源", "分析结束,请开始设置AssetBundle Name", "Ok"); Resources.UnloadUnusedAssets(); }
public static string RawAnimDirectory = "Assets/Raw/Model/"; // Fbx原始目录 //[MenuItem("Tools/Animation/分离动画")] public static void AllSeparationAnimationByFbx() { List <string> assetPaths = EPathHelper.GetAssetsPath(RawAnimDirectory, true, "*.FBX"); int length = assetPaths.Count; for (int i = 0; i < length; i++) { List <AnimationClip> clips = new List <AnimationClip>(); string assetPath = assetPaths[i]; string animFolder = FindAnimsByFolder(assetPath, clips); if (string.IsNullOrEmpty(animFolder) || clips.Count == 0) { continue; } animFolder = GetFolderName(animFolder); if (!Directory.Exists(CopyAnimPath + animFolder)) { Directory.CreateDirectory(CopyAnimPath + animFolder); } int clipLength = clips.Count; for (int k = 0; k < clipLength; k++) { EditorUtility.DisplayProgressBar("复制文件", "复制" + clips[k] + "到:" + animFolder + "文件夹", (i) / (clipLength * 1.0f)); CopyAsset(clips[k], animFolder); } } EditorUtility.ClearProgressBar(); AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); }
// 选择某一条具体的规则 private void OnRuleSelected(object select, int col) { AssetFormatRule rule = select as AssetFormatRule; if (rule == null) { return; } _shows.Clear(); _formatRule = rule; List <string> pathList = EPathHelper.GetAssetsPath(rule.FilterPath, true, "*.png"); int length = pathList.Count; for (int i = 0; i < length; i++) { if (!EPathHelper.IsTexture(pathList[i])) { continue; } var tmp = TextureFormatInfo.Create(pathList[i]); _shows.Add(tmp); } _texShowTablePanel.RefreshData(_shows); }
private void _init() { List <string> assetsPath = EPathHelper.GetAssetsPath(_directory, true); int length = assetsPath.Count; for (int i = 0; i < length; i++) { _assetsMap.Add(assetsPath[i]); } }
public static void AllCheckShader() { List <string> assets_path = EPathHelper.GetAssetsPath(EAssetBundleConst.MAIN_RES_DRIECTORY, true); int length = assets_path.Count; for (int i = 0; i < length; i++) { CheckShader(assets_path[i]); EditorUtility.DisplayProgressBar("检测Shader", assets_path[i], (float)(i + 1) / length); } EditorUtility.ClearProgressBar(); }
public static string _searchSuffix = "*.anim"; // *.FBX 查询的目标是fbx还是anim #region 预处理 //[MenuItem("Tools/预处理/动画预处理")] public static void AllAnimationPreTreatment() { //List<string> all_animation = new List<string>(animation_all); // 1.找到需要处理的角色prefab List <string> charPrefabPath = EPathHelper.GetAssetsPath(_characterPrefabDirectory, false, "*.prefab"); int length = charPrefabPath.Count; for (int i = 0; i < length; i++) { _excute_animation(charPrefabPath[i]); EditorUtility.DisplayProgressBar(charPrefabPath[i], string.Format("动画预处理({0}/{1})", i + 1, length), (float)(i + 1) / length); } SavePrefab(); EditorUtility.ClearProgressBar(); EditorUtility.DisplayDialog("", "动画预处理完毕", "OK"); }
/// <summary> /// 设置主资源名字 /// </summary> public static void OblyMainAbName() { List <string> assetsPath = EPathHelper.GetAssetsPath(EAssetBundleConst.MAIN_RES_DRIECTORY, true); List <string> assetsPath1 = EPathHelper.GetAssetsPath(EAssetBundleConst.UI_MAIN_DIRECTORY, true); assetsPath.AddRange(assetsPath1); int length = assetsPath.Count; for (int i = 0; i < length; i++) { EditorUtility.DisplayProgressBar("设置AssetBundle名字", assetsPath[i], (float)(i + 1) / length); SetAbNameByPath(assetsPath[i]); } EditorUtility.ClearProgressBar(); Resources.UnloadUnusedAssets(); AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); }
public const string SUFFIX_ANIM = "*.anim"; // 文件后缀名 //[MenuItem("Tools/优化/动画内存优化")] public static void AllSeoAnimation() { List <string> anim_paths = EPathHelper.GetAssetsPath(anim_directory, true, SUFFIX_ANIM); int length = anim_paths.Count; for (int i = 0; i < length; i++) { AnimationClip clip = AssetDatabase.LoadAssetAtPath <AnimationClip>(anim_paths[i]); if (clip == null) { continue; } _seo_animation(clip); EditorUtility.DisplayProgressBar(anim_paths[i], string.Format("动画内存优化({0}/{1})", i + 1, length), (float)(i + 1) / length); } ShowDialog(); }
public void OnSearchTextures(string searchPath) { _shows.Clear(); List <string> pathList = EPathHelper.GetAssetsPath(searchPath, true, "*.*"); int length = pathList.Count; for (int i = 0; i < length; i++) { if (!EPathHelper.IsTexture(pathList[i])) { continue; } var tmp = TextureFormatInfo.Create(pathList[i]); _shows.Add(tmp); } _texShowTablePanel.RefreshData(_shows); _formatRule = null; }
// 查找指定目录下的所有动画文件 public static List <AnimationClip> _find_animation_clip(string folderPath) { List <AnimationClip> clips = new List <AnimationClip>(); List <string> animsPath = EPathHelper.GetAssetsPath(folderPath, false, _searchSuffix); int length = animsPath.Count; for (int i = 0; i < length; i++) { EditorUtility.DisplayProgressBar("加载动画文件,", animsPath[i], (1 + i) / length); AnimationClip clip = AssetDatabase.LoadAssetAtPath <AnimationClip>(animsPath[i]); if (clip == null) { continue; } clips.Add(clip); } EditorUtility.ClearProgressBar(); return(clips); }
public static void Excute() { // 1.得到当前的Img路径 int length = _spritePath.Length; List <string> imgFiles = new List <string>(); for (int i = 0; i < length; i++) { List <string> tmpFiles = EPathHelper.GetAssetsPath(_spritePath[i], true); imgFiles.AddRange(tmpFiles); } // 2.根据路径设置Img的SpriteTag length = imgFiles.Count; for (int i = 0; i < length; i++) { EditorUtility.DisplayProgressBar("设置图片的SpriteTag", imgFiles[i], (float)(i) / length); SetImgTag(imgFiles[i]); } // 3.保存 EditorUtility.ClearProgressBar(); AssetDatabase.SaveAssets(); }