NLDClient-yudde/ProjectNLD/Assets/Editor/ResCheck/ResMover.cs

181 lines
7.0 KiB
C#

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<string>();
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<string>();
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<string>();
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<string>();
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<string>();
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);
}
}
}