如果序列帧太多了,可以删除,选择文件夹删除一半序列帧,第一张和最后一张保留
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.IO;
using System.Linq;
using UnityEditor.Timeline.Actions;
using UnityEditor;
public class DeleImage : MonoBehaviour
{
}
// 定义一个继承自EditorWindow的类,用于创建自定义的编辑器窗口
public class ImageDeleterEditorWiondow : EditorWindow
{
// 定义一个私有字符串变量,用于存储用户输入的文件夹路径
private string folderPath;
// 使用MenuItem特性,将ShowWindow方法添加到Unity编辑器的菜单栏中,路径为Tools/Delete Picture
[MenuItem("Tools/Delete Picture")]
// 定义一个静态方法,用于显示自定义的编辑器窗口
public static void ShowWindow()
{
// 获取或创建一个ImageDeleterEditorWiondow类型的编辑器窗口实例,并设置窗口标题为"Delete Picture"
GetWindow<ImageDeleterEditorWiondow>("Delete Picture");
}
// 定义一个方法,用于绘制编辑器窗口的GUI界面
void OnGUI()
{
// 在窗口中绘制一个标签,显示"Folder Path"
GUILayout.Label("Folder Path", EditorStyles.boldLabel);
// 在窗口中绘制一个按钮,显示"Select Folder"
if (GUILayout.Button("Select Folder"))
{
// 当按钮被点击时,调用EditorUtility.OpenFolderPanel方法,打开一个文件夹选择对话框
// 对话框的标题为"Select Folder",初始文件夹路径为"",用户选择文件夹后,将选择的路径赋给folderPath变量
folderPath = EditorUtility.OpenFolderPanel("Select Folder", "", "");
}
// 显示选择的文件夹路径
//EditorGUILayout.TextField(folderPath);
// 在标签下方绘制一个文本输入框,用于用户输入文件夹路径,并将输入的值赋给folderPath变量
folderPath = EditorGUILayout.TextField(folderPath);
// 在窗口中绘制一个按钮,显示"Delete Images"
if (GUILayout.Button("Delete Picture"))
{
// 当按钮被点击时,调用ImageDeleter类的DeleteImages方法,传入folderPath作为参数
ImageDeleter.DeleteImages(folderPath);
}
}
}
public class ImageDeleter
{
//[MenuItem("Tools/DeleteImages")]
public static void DeleteImages(string folderPath)
{
// 获取指定文件夹中的所有图片文件
string[] imageFiles = Directory.GetFiles(folderPath)
// 使用LINQ的Where方法过滤出所有以.jpg、.png或.jpeg结尾的文件
.Where(file => file.EndsWith(".jpg") || file.EndsWith(".png") || file.EndsWith(".jpeg"))
.ToArray();
// 如果图片数量少于2张,则不进行删除操作
if (imageFiles.Length < 2)
{
Debug.Log("文件夹中的图片数量少于2张,不进行删除操作。");
return;
}
// 保留第一张和最后一张图片
for (int i = 1; i < imageFiles.Length - 1; i += 2)
{
File.Delete(imageFiles[i]);
//Console.WriteLine($"已删除图片: {imageFiles[i]}");
Debug.Log($"已删除图片: {imageFiles[i]}");
}
// 刷新编辑器页面
AssetDatabase.Refresh();
}
}