using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEditor;
|
using System.IO;
|
|
public class UpdateAllSetting
|
{
|
|
[MenuItem("程序/设置资源包名/更新全部ABLabel(不包括lua)")]
|
public static void SetAllAssetBundleName()
|
{
|
UpdateSpriteSetting.SetAllSpriteAssetBundleName();
|
UpdateUIWindowSetting.SetAllUIWindowAssetBundleName();
|
UpdateUIPrefabSetting.SetAllUIPrefabAssetBundleName();
|
UpdateEffectPrefabSetting.SetAllEffectPrefabAssetBundleName();
|
UpdateMobSetting.SetAllMobAssetBundleName();
|
UpdateShaderSetting.SetAllShaderAssetBundleName();
|
UpdateLevelSetting.SetAllLevelAssetBundleName();
|
UpdateAudioSetting.SetAllAudioAssetBundleName();
|
UpdateVideoSetting.SetAllVideoAssetBundleName();
|
UpdateBuiltInSetting.SetBuiltinAssetBundleName();
|
AssetDatabase.Refresh();
|
Debug.Log("资源包名全部更新完成!");
|
}
|
}
|
|
public class UpdateSpriteSetting
|
{
|
|
static string rootPath = Application.dataPath + "/ResourcesOut/Sprite";
|
static string spriteRelativePath = "Assets/ResourcesOut/Sprite";
|
|
public static void SetRechargeSkin(int pattern)
|
{
|
// var toDirectory = Application.dataPath + "/ResourcesOut/Sprite/Recharge";
|
// var oldFiles = new DirectoryInfo(toDirectory).GetFiles("*.png", SearchOption.AllDirectories);
|
// foreach (var item in oldFiles)
|
// {
|
// File.Delete(item.FullName);
|
// }
|
|
// var fromDirectory = Application.dataPath + "/Editor/RechargeSprites/Pattern_" + pattern;
|
// FileExtersion.DirectoryCopy(fromDirectory, toDirectory);
|
}
|
|
[MenuItem("程序/设置资源包名/更新Sprite(All) AssetBundleName")]
|
public static void SetAllSpriteAssetBundleName()
|
{
|
//改成设置atlas的assetBundleName
|
var allFiles = new DirectoryInfo(rootPath).GetFiles("*.spriteatlasv2", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var importerPath = spriteRelativePath + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "sprite/" + file.Name.Split(".")[0].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
allFiles = new DirectoryInfo(rootPath).GetFiles("*.png", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split(Path.DirectorySeparatorChar);
|
var importerPath = spriteRelativePath + Path.DirectorySeparatorChar + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "sprite/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
|
Debug.Log("Sprite资源包名更新完成!");
|
// AssetDatabase.SaveAssets();
|
// AssetDatabase.Refresh();
|
}
|
|
}
|
|
|
public class UpdateUIWindowSetting
|
{
|
static string assetRelativePath = "Assets/ResourcesOut/UI";
|
|
[MenuItem("程序/设置资源包名/更新Window(All) AssetBundleName")]
|
public static void SetAllUIWindowAssetBundleName()
|
{
|
var guids = AssetDatabase.FindAssets("t:prefab", new string[] { assetRelativePath });
|
foreach (var guid in guids)
|
{
|
var path = AssetDatabase.GUIDToAssetPath(guid);
|
var importer = AssetImporter.GetAtPath(path);
|
importer.assetBundleName = "ui/ui";
|
|
// EditorUtility.SetDirty(importer);
|
}
|
|
Debug.Log("Window资源包名更新完成!");
|
// AssetDatabase.SaveAssets();
|
// AssetDatabase.Refresh();
|
}
|
}
|
|
public class UpdateUIPrefabSetting
|
{
|
static string prefabRootPath = Application.dataPath + "/ResourcesOut/UIComp";
|
static string prefabAssetRelativePath = "Assets/ResourcesOut/UIComp";
|
|
|
[MenuItem("程序/设置资源包名/更新Prefab(All) AssetBundleName")]
|
public static void SetAllUIPrefabAssetBundleName()
|
{
|
var allFiles = new DirectoryInfo(prefabRootPath).GetFiles("*.prefab", SearchOption.TopDirectoryOnly);
|
foreach (var file in allFiles)
|
{
|
var importerPath = prefabAssetRelativePath + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "ui/uicomp";
|
// EditorUtility.SetDirty(importer);
|
}
|
|
|
Debug.Log("UIComp资源包名更新完成!");
|
// AssetDatabase.SaveAssets();
|
// AssetDatabase.Refresh();
|
}
|
|
|
}
|
|
public class UpdateEffectPrefabSetting
|
{
|
static string rootPath = Application.dataPath + "/ResourcesOut/UIEffect/";
|
static string assetPath = "Assets/ResourcesOut/UIEffect/";
|
|
[MenuItem("程序/设置资源包名/更新Effect(All) AssetBundleName")]
|
public static void SetAllEffectPrefabAssetBundleName()
|
{
|
var allFiles = new DirectoryInfo(rootPath).GetFiles("*.asset", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split("UIEffect");
|
var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
Debug.Log(importerPath);
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "uieffect/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
allFiles = new DirectoryInfo(rootPath).GetFiles("*.json", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split("UIEffect");
|
var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "uieffect/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
allFiles = new DirectoryInfo(rootPath).GetFiles("*.txt", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split("UIEffect");
|
var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "uieffect/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
allFiles = new DirectoryInfo(rootPath).GetFiles("*.png", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split("UIEffect");
|
var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "uieffect/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
|
Debug.Log("Effect资源包名更新完成!");
|
// AssetDatabase.SaveAssets();
|
// AssetDatabase.Refresh();
|
}
|
}
|
|
public class UpdateMobSetting
|
{
|
static string rootPath = Application.dataPath + "/ResourcesOut/Hero";
|
static string assetPath = "Assets/ResourcesOut/Hero";
|
|
[MenuItem("程序/设置资源包名/更新Mob(All) AssetBundleName")]
|
public static void SetAllMobAssetBundleName()
|
{
|
var allFiles = new DirectoryInfo(rootPath).GetFiles("*.asset", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split("Hero");
|
var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "hero/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
allFiles = new DirectoryInfo(rootPath).GetFiles("*.json", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split("Hero");
|
var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "hero/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
allFiles = new DirectoryInfo(rootPath).GetFiles("*.txt", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split("Hero");
|
var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "hero/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
allFiles = new DirectoryInfo(rootPath).GetFiles("*.png", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split("Hero");
|
var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "hero/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
|
Debug.Log("Hero资源包名更新完成!");
|
//AssetDatabase.SaveAssets();
|
//AssetDatabase.Refresh();
|
}
|
}
|
|
public class UpdateShaderSetting
|
{
|
static string rootPath = Application.dataPath + "/ResourcesOut/Shader";
|
static string assetPath = "Assets/ResourcesOut/Shader";
|
|
[MenuItem("程序/设置资源包名/更新Shader(All) AssetBundleName")]
|
public static void SetAllShaderAssetBundleName()
|
{
|
var allFiles = new DirectoryInfo(rootPath).GetFiles("*.shader", SearchOption.TopDirectoryOnly);
|
foreach (var file in allFiles)
|
{
|
var importerPath = assetPath + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "graphic/shader";
|
// EditorUtility.SetDirty(importer);
|
}
|
Debug.Log("Shader资源包名更新完成!");
|
// AssetDatabase.SaveAssets();
|
// AssetDatabase.Refresh();
|
}
|
}
|
|
public class UpdateScriptableObjectsSetting
|
{
|
// static string rootPath = Application.dataPath + "/ResourcesOut/Refdata/ScriptableObject/";
|
// static string assetPath = "Assets/ResourcesOut/Refdata/ScriptableObject/";
|
// static string[] relativePaths = new string[] { "SoTreasure3D", "SoTreasureMeridian", "SoActor", "SoDeadFly", "SoBodyControl",
|
// "SoCameraSFX", "SoFlyObject", "SoSkill", "SoSweepHit", "SoGhostShadow", "SoNewBieGuide", "SoMapObjectGenerate","SoDemonDungeon",
|
// "SoHazyMapNpc","SoProcessNode"};
|
|
// [MenuItem("程序/设置资源包名/更新ScriptableObject(All) AssetBundleName")]
|
// public static void SetAllScriptableObjectAssetBundleName()
|
// {
|
// for (int i = 0; i < relativePaths.Length; i++)
|
// {
|
// var relativePath = relativePaths[i];
|
// var allFiles = new DirectoryInfo(rootPath + relativePath).GetFiles("*.asset", SearchOption.TopDirectoryOnly);
|
|
// foreach (var file in allFiles)
|
// {
|
// var importerPath = assetPath + relativePath + Path.DirectorySeparatorChar + file.Name;
|
// var importer = AssetImporter.GetAtPath(importerPath);
|
// importer.assetBundleName = "config/scriptableobjects";
|
// // EditorUtility.SetDirty(importer);
|
// }
|
// }
|
// Debug.Log("ScriptableObject资源包名更新完成!");
|
// // AssetDatabase.SaveAssets();
|
// // AssetDatabase.Refresh();
|
// }
|
}
|
|
public class UpdateLevelSetting
|
{
|
static string exportMapsPath = Application.dataPath + "/Editor/Config/ExportMaps.txt";
|
static string rootPath = Application.dataPath + "/Art/Maps/Scenes";
|
static string assetPath = "Assets/Art/Maps/Scenes";
|
static HashSet<string> exportMaps;//去除的地图列表
|
|
|
[MenuItem("程序/设置资源包名/更新Level(All) AssetBundleName")]
|
public static void SetAllLevelAssetBundleName()
|
{
|
// ReadExportConfig();
|
|
// var allFiles = new DirectoryInfo(rootPath).GetFiles("*.unity", SearchOption.TopDirectoryOnly);
|
// foreach (var file in allFiles)
|
// {
|
// var importerPath = assetPath + Path.DirectorySeparatorChar + file.Name;
|
// var importer = AssetImporter.GetAtPath(importerPath);
|
// var name = Path.GetFileNameWithoutExtension(file.FullName);
|
// if (exportMaps.Contains(name)) //判断这个地图是否被排除,被排除不打包
|
// importer.assetBundleName = "";
|
// else
|
// importer.assetBundleName = "maps/" + name.ToLower();
|
|
// // EditorUtility.SetDirty(importer);
|
// }
|
|
// var createRoleAssets = AssetDatabase.FindAssets("t:prefab", new string[] { "Assets/ResourcesOut/Scene/CreateRole" });
|
// foreach (var item in createRoleAssets)
|
// {
|
// var importer = AssetImporter.GetAtPath(AssetDatabase.GUIDToAssetPath(item));
|
// importer.assetBundleName = "maps/createrole";
|
// // EditorUtility.SetDirty(importer);
|
// }
|
|
// var textures = AssetDatabase.FindAssets("t:Texture2D", new string[] { "Assets/ResourcesOut/Scene/Textures" });
|
// foreach (var item in textures)
|
// {
|
// var importer = AssetImporter.GetAtPath(AssetDatabase.GUIDToAssetPath(item));
|
// importer.assetBundleName = "maps/textures";
|
// // EditorUtility.SetDirty(importer);
|
// }
|
// exportMaps?.Clear();
|
// exportMaps = null;
|
Debug.Log("map资源包名更新完成!");
|
// AssetDatabase.SaveAssets();
|
// AssetDatabase.Refresh();
|
}
|
|
//读取排除地图的配置
|
private static void ReadExportConfig()
|
{
|
if (File.Exists(exportMapsPath))
|
{
|
var lines = File.ReadAllLines(exportMapsPath);
|
exportMaps = new HashSet<string>(lines);
|
}
|
}
|
|
}
|
|
public class UpdateAudioSetting
|
{
|
static string rootPath = Application.dataPath + "/ResourcesOut/Audio/";
|
static string assetPath = "Assets/ResourcesOut/Audio/";
|
|
[MenuItem("程序/设置资源包名/更新Audio(All) AssetBundleName")]
|
public static void SetAllAudioAssetBundleName()
|
{
|
var allFiles = new DirectoryInfo(rootPath).GetFiles("*.wav", SearchOption.AllDirectories);
|
|
foreach (var file in allFiles)
|
{
|
var pathStringArray = file.DirectoryName.Split(Path.DirectorySeparatorChar);
|
var importerPath = assetPath + pathStringArray[pathStringArray.Length - 1] + Path.DirectorySeparatorChar + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "audio/" + pathStringArray[pathStringArray.Length - 1].ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
Debug.Log("Audio资源包名更新完成!");
|
// AssetDatabase.SaveAssets();
|
// AssetDatabase.Refresh();
|
}
|
}
|
|
public class UpdateVideoSetting
|
{
|
static string rootPath = Application.dataPath + "/ResourcesOut/Video/";
|
static string assetPath = "Assets/ResourcesOut/Video/";
|
|
[MenuItem("程序/设置资源包名/更新Video(All) AssetBundleName")]
|
public static void SetAllVideoAssetBundleName()
|
{
|
if (!Directory.Exists(rootPath))
|
return;
|
var allFiles = new DirectoryInfo(rootPath).GetFiles("*.mp4", SearchOption.AllDirectories);
|
foreach (var file in allFiles)
|
{
|
var importerPath = assetPath + file.Name;
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "video/"+Path.GetFileNameWithoutExtension(file.FullName);
|
// EditorUtility.SetDirty(importer);
|
}
|
Debug.Log("Video资源包名更新完成!");
|
// AssetDatabase.SaveAssets();
|
// AssetDatabase.Refresh();
|
}
|
}
|
|
public class UpdateBuiltInSetting
|
{
|
static string rootPath = Application.dataPath + "/ResourcesOut/BuiltIn/";
|
static string assetPath = "Assets/ResourcesOut/BuiltIn/";
|
|
[MenuItem("程序/设置资源包名/更新BuiltIn(All) AssetBundleName")]
|
public static void SetBuiltinAssetBundleName()
|
{
|
var allFiles = new List<FileInfo>();
|
FileExtersion.GetAllDirectoryFileInfos(rootPath, allFiles);
|
|
var amendRootPath = rootPath.Replace("\\", "/");
|
foreach (var file in allFiles)
|
{
|
var extension = Path.GetExtension(file.FullName);
|
if (extension == ".meta")
|
{
|
continue;
|
}
|
|
if (extension == ".DS_Store")
|
{
|
continue;
|
}
|
|
var directoryName = file.DirectoryName.Replace("\\", "/");
|
var relativeDirectory = directoryName.Replace(amendRootPath, "");
|
|
var importerPath = assetPath + relativeDirectory + Path.DirectorySeparatorChar + file.Name;
|
if (file.Name != ".DS_Store")
|
{
|
var importer = AssetImporter.GetAtPath(importerPath);
|
importer.assetBundleName = "builtin/" + relativeDirectory.ToLower();
|
// EditorUtility.SetDirty(importer);
|
}
|
}
|
Debug.Log("BuiltIn资源包名更新完成!");
|
// AssetDatabase.SaveAssets();
|
// AssetDatabase.Refresh();
|
}
|
}
|