Unity编辑器扩展-Asset资源清理

该代码实现了一个基于Odin插件的Unity编辑器窗口,用于在打包时筛选并删除未使用的资源。用户可以选择忽略的文件类型,如脚本和着色器,并能清理特定文件夹。工具还提供了批量删除和导出为package的功能,以避免误删项目中的重要资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于odin插件做的编辑器窗口(odin真香)。
在这里插入图片描述
根据文件类型赛选当前打包设置的场景里所有没有用到的资源,删除后会打包成package后删除,以免误删资源。

using Sirenix.OdinInspector;
using Sirenix.OdinInspector.Editor;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
using static System.Environment;

namespace YjjTool
{
    public class Yjj_AssetClear : OdinEditorWindow
    {
        public enum FolderType
        {
            不清理文件夹内容,
            只清理文件夹内容,
        }
        [Title("忽略文件类型")]
        [EnumToggleButtons, HideLabel,InfoBox("<color=red>请注意:清理脚本文件和shader可能导致项目报错和材质丢失</color>",VisibleIf = "@!ignorType.HasFlag(IgnorType.cs) || !ignorType.HasFlag(IgnorType.shader)")]
        public IgnorType ignorType = IgnorType.cs |IgnorType.shader;
        [EnumToggleButtons, HideLabel, Space(15)]
        public FolderType folderType = FolderType.不清理文件夹内容;
        [LabelText("文件夹剔除"), InlineButton("Add")]
        public List<string> ignorePath = new List<string>() { @"Assets\AllPlugins\YjjTools" };

        [BoxGroup("list")]
        [TableList(ShowIndexLabels = true), LabelText("可删除文件"),HideIf("@results.Count == 0")]
        public List<ClearInfo> results = new List<ClearInfo>();
        #region 快捷按钮
        [BoxGroup("list", ShowLabel = false),HideIf("@results.Count == 0")]
        [ButtonGroup("list/select")]
        private void All()
        {
            
            results.ForEach(x => x.clear = true);
        }
        [BoxGroup("list")]
        [ButtonGroup("list/select"), HideIf("@results.Count == 0")]
        private void None()
        {
            results.ForEach(x => x.clear = false);
        }
        #endregion

        [TableList(ShowIndexLabels = true), LabelText("谨慎删除的文件"),HideIf("@unSelectResults.Count == 0")]
        public List<ClearInfo> unSelectResults = new List<ClearInfo>();

        [TableList, ShowIf("@rules.Count>0"),LabelText("根据后缀选择文件")]
        public List<TypeSelect> rules = new List<TypeSelect>();

        private void Add()
        {
            var path = EditorUtility.OpenFolderPanel("选择要忽略的文件夹", Application.dataPath, "");
            if (!string.IsNullOrEmpty(path))
            {
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值