using System.Collections.Generic; using Framework; using UnityEditor; using UnityEngine; namespace ResCheck { public class ResMover { // [MenuItem("Tools/资源检查/自动移动子弹资源")] public static void MoveBulletPrefabs() { var bulletConfig = TableManager.Instance.Tables.BulletConfig; var allBulletNames = new List(); foreach (var bullet in bulletConfig.DataList) { var bulletName = bullet.PrefabPath; if (string.IsNullOrEmpty(bulletName)) { continue; } if (allBulletNames.Contains(bulletName)) { continue; } allBulletNames.Add(bulletName); } Debug.Log("allBulletNames.Count:" + allBulletNames.Count); for (int i = 0; i < allBulletNames.Count; i++) { var oldPath = "Assets/Art/Gfx/Character/" + allBulletNames[i] + ".prefab"; var newPath = "Assets/Art_Out/Manual/Bullets/" + allBulletNames[i] + ".prefab"; // 创建新的prefab, 不删除旧的 AssetDatabase.CopyAsset(oldPath, newPath); Debug.Log("MoveBulletPrefabs:" + allBulletNames[i]); } AssetDatabase.Refresh(); Debug.Log("MoveBulletPrefabs Done!"); } // [MenuItem("Tools/资源检查/自动移动召唤物资源")] public static void MoveSummonPrefabs() { var summonConfig = TableManager.Instance.Tables.SummonConfig; var allSummonNames = new List(); foreach (var summon in summonConfig.DataList) { var summonName = summon.ModelPath; if (string.IsNullOrEmpty(summonName)) { continue; } if (allSummonNames.Contains(summonName)) { continue; } allSummonNames.Add(summonName); } Debug.Log("allSummonNames.Count:" + allSummonNames.Count); for (int i = 0; i < allSummonNames.Count; i++) { var oldPath = "Assets/Art/Character/Prefabs/Summon/" + allSummonNames[i] + ".prefab"; var newPath = "Assets/Art_Out/Manual/Summon/" + allSummonNames[i] + ".prefab"; // 创建新的prefab, 不删除旧的 AssetDatabase.CopyAsset(oldPath, newPath); Debug.Log("MoveSummonPrefabs:" + allSummonNames[i]); } AssetDatabase.Refresh(); Debug.Log("MoveSummonPrefabs Done!"); } // [MenuItem("Tools/资源检查/自动移动建筑资源")] public static void MoveBuildingPrefabs() { var buildingConfig = TableManager.Instance.Tables.BuildConfig; var allBuildingNames = new List(); foreach (var building in buildingConfig.DataList) { var buildingName = building.ModelPath; if (string.IsNullOrEmpty(buildingName)) { continue; } if (allBuildingNames.Contains(buildingName)) { continue; } allBuildingNames.Add(buildingName); } Debug.Log("allBuildingNames.Count:" + allBuildingNames.Count); for (int i = 0; i < allBuildingNames.Count; i++) { var oldPath = "Assets/Art/Character/Prefabs/Build/" + allBuildingNames[i] + ".prefab"; var newPath = "Assets/Art_Out/Manual/Building/" + allBuildingNames[i] + ".prefab"; // 创建新的prefab, 不删除旧的 AssetDatabase.CopyAsset(oldPath, newPath); Debug.Log("MoveBuildingPrefabs:" + allBuildingNames[i]); } AssetDatabase.Refresh(); Debug.Log("MoveBuildingPrefabs Done!"); } // [MenuItem("Tools/资源检查/自动移动特效资源")] public static void MoveEffectPrefabs() { var effectConfig = TableManager.Instance.Tables.EffectConfig; var allEffectNames = new List(); foreach (var effect in effectConfig.DataList) { var effectName = effect.PrefabPath; if (string.IsNullOrEmpty(effectName)) { continue; } if (allEffectNames.Contains(effectName)) { continue; } allEffectNames.Add(effectName); } Debug.Log("allEffectNames.Count:" + allEffectNames.Count); for (int i = 0; i < allEffectNames.Count; i++) { var oldPath = allEffectNames[i]; var fileName = _GetFileName(oldPath); var newPath = "Assets/Art_Out/Manual/Effects/" + fileName + ".prefab"; // 创建新的prefab, 不删除旧的 AssetDatabase.CopyAsset(oldPath, newPath); Debug.Log("MoveEffectPrefabs:" + allEffectNames[i]); } AssetDatabase.Refresh(); Debug.Log("MoveEffectPrefabs Done!"); } [MenuItem("Tools/*载具/自动移动炮台资源")] public static void MoveBatteryPrefabs() { var batteryConfig = TableManager.Instance.Tables.BatteryConfig; var allBatteryNames = new List(); foreach (var battery in batteryConfig.DataList) { var batteryName = battery.ModelPath; if (string.IsNullOrEmpty(batteryName)) { continue; } if (allBatteryNames.Contains(batteryName)) { continue; } allBatteryNames.Add(batteryName); } Debug.Log("allBatteryNames.Count:" + allBatteryNames.Count); for (int i = 0; i < allBatteryNames.Count; i++) { var oldPath = allBatteryNames[i]; var fileName = _GetFileName(oldPath); var newPath = "Assets/Art_Out/Manual/Battery/" + fileName + ".prefab"; // 创建新的prefab, 不删除旧的 AssetDatabase.CopyAsset(oldPath, newPath); Debug.Log("MoveBatteryPrefabs:" + allBatteryNames[i]); } AssetDatabase.Refresh(); Debug.Log("MoveBatteryPrefabs Done!"); } private static string _GetFileName(string fullPath) { var lastSlashIndex = fullPath.LastIndexOf('/'); var lastDotIndex = fullPath.LastIndexOf('.'); return fullPath.Substring(lastSlashIndex + 1, lastDotIndex - lastSlashIndex - 1); } } }