You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中读取CSV文件及克隆LineRenderer预制体求助

解决Unity中CSV边文件加载失败问题

出现"Failed to load CSV file"错误的核心原因是Resources.Load(file)返回了null,以下是针对性的排查和解决步骤:

1. 检查文件放置路径

Resources.Load仅能读取Assets/Resources目录及其子目录下的资源:

  • 确保边CSV文件放在Assets/Resources文件夹内(无此目录则手动创建)
  • 若文件在子目录(如Resources/CSV/edges.csv),调用Read方法时传入的路径应为"CSV/edges"(无需添加.csv后缀)

2. 修正文件导入设置

选中CSV文件,在Inspector面板的Import Settings中:

  • 将Text Type设置为Text
  • 保持Asset Bundle默认设置(新手无需修改)

3. 修正路径传入错误

调用EdgeReader.Read()时:

  • 不要携带文件后缀(例:文件为edges.csv,传参应为"edges"而非"edges.csv")
  • 检查文件名拼写、大小写(Windows下不区分,但跨平台或打包时会严格校验)

4. 替换Resources.Load为直接引用(更可靠)

你的代码中_edgeFile是public变量,但static的Read方法未使用它,可改造成直接传入TextAsset的方式,规避路径问题:

// 修改Read方法为接收TextAsset参数
public static List<Dictionary<string, object>> Read(TextAsset data)
{
    var list = new List<Dictionary<string, object>>();
    if (data == null)
    {
        Debug.LogError("Edge data TextAsset is null!");
        return list;
    }

    var lines = Regex.Split(data.text, LINE_SPLIT_RE);

    if (lines.Length <= 1) return list;

    var header = Regex.Split(lines[0], SPLIT_RE);
    for (int i = 1; i < lines.Length; i++)
    {
        var values = Regex.Split(lines[i], SPLIT_RE);
        if (values.Length == 0 || values[0] == "") continue;

        int source, target;
        if (!int.TryParse(values[0], out source) || !int.TryParse(values[1], out target))
        {
            Debug.LogWarning("Failed to parse edge at line " + i);
            continue;
        }

        var edge = new Dictionary<string, object>();
        edge["source"] = source;
        edge["target"] = target;

        list.Add(edge);
    }
    return list;
}

调用时直接传入Inspector赋值的_edgeFile:

// 在初始化脚本中
EdgeReader reader = GetComponent<EdgeReader>();
var edges = EdgeReader.Read(reader._edgeFile);

5. 检查文件编码

若上述步骤无效,尝试修改CSV文件编码:

  • 用记事本打开文件,选择"另存为",编码选择UTF-8(无BOM)或ASCII
  • 替换原文件后重新导入Unity

内容的提问来源于stack exchange,提问作者b2xb10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 15:03:13