Unity编辑器开发入门(三)查询引用,结果导出CSV

Unity编辑器   2022-11-05 18:42   1211   0  

CSV是一种通用的、相对简单的文件格式。

百科是这样解释的:

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件

开发过程中,我们可能需要导出一些数据,便于分析。

在Unity编辑器可以这样实现:

/*********
导出文件
*********/
using System;
using System.IO;
using System.Text;
using UnityEditor;
using UnityEngine;

public static class ReferenceFinder
{
    [MenuItem("Assets/导出依赖文件路径")]
    public static void OutPutInfo()
    {
        //打印执行耗时
        System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
        //计时开始
        stopwatch.Start();

        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.AppendLine("点击的被查询的文件,引用的文件");
        //点击文件查询引用关系
        foreach (var guid in Selection.assetGUIDs)
        {
            string path = AssetDatabase.GUIDToAssetPath(guid);
            stringBuilder.AppendLine($"{path},");
            foreach (var dependencies in AssetDatabase.GetDependencies(path))
            {
                if (dependencies!=path)
                {
                    stringBuilder.AppendLine($",{dependencies}");
                }
            }
        }
        //导出资源路径适配双端(Mac 和 Windows)
#if UNITY_EDITOR_OSX
        string outputFolderPath = Application.dataPath + "/../OutPut"; 
#else
        string outputFolderPath = Application.dataPath + "\\..\\OutPut";
#endif
        //输出文件地址拼接
        string outputPath = Path.Combine(outputFolderPath,$"dependencies_{DateTime.Now.ToString("yyyyMMddHHmmss")}.CSV");
        //创建目录导出文件
        Directory.CreateDirectory(outputFolderPath);
        File.WriteAllText(outputPath, stringBuilder.ToString(),Encoding.UTF8);
        //计时结束,打印耗时
        stopwatch.Stop();
        double seconds = stopwatch.Elapsed.TotalMilliseconds;
        Debug.Log($"整个流程耗时 {seconds} 毫秒。。。");

        //打开导出的CSV文件
        Application.OpenURL(outputPath);

    }

}

41431_yvrc_5755.gif

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。
QQ
微信
打赏
扫一扫