【问题标题】:Is there really no CSV reader in Unity? [duplicate]Unity 中真的没有 CSV 阅读器吗? [复制]
【发布时间】:2021-12-27 06:56:28
【问题描述】:

我在网上找到的在 Unity 中读取 .csv 文件的所有选项都涉及自己实现

(例如https://answers.unity.com/questions/782965/reading-data-from-a-csv-file.htmlhttps://forum.unity.com/threads/how-to-read-a-dataset-from-a-csv.858814/https://www.theappguruz.com/blog/unity-csv-parsing-unity 等等...)

在.NET中,你可以use the VisualBasic library to parse CSVs

但 VisualBasic 库不是 Unity 生态系统的一部分。 You need to manually import Microsoft.VisualBasic.dll and dependencies, and update csc.rp

我认为 CSV 解析将是 C# 的“基本”功能。它有一个 JSON 解析器,.csv 并没有那么遥远。在 Unity 中真的没有开箱即用的 .csv 解析器吗?

【问题讨论】:

  • CsvHelper.IO 不能与 Unity 一起使用吗?
  • 但 VisualBasic 库不是 Unity 生态系统的一部分 - 有很多东西不是“内置在 c# 中的”(不管这意味着什么)。 Microsoft 为您提供了推出自己的东西的工具,因此您可以继续这样做 - 很多人已经使用 CSV 完成了它,如果断言“世界上没有一个 csv 阅读库”,我会感到惊讶在一个统一项目中工作”是真的..
  • 正确,例如,UnityEngine 包含一个 JSON 阅读器。 System.IO 等其他默认库包含文件流阅读器。由于我只能看到外部库来解决这个问题,我必须得出结论,在统一或任何默认库中没有“现成”解决方案
  • 另外提供的重复问题并没有真正回答我的问题。评价最高的答案链接到另一个 3rd 方库。同样,只有更多的证据表明 Unity 不包含 CSV 阅读器,它没有提供任何默认 C# 库

标签: c# csv unity3d


【解决方案1】:

CSV 文件是纯文本,它们非常简单。我认为写几个 csv 解析类比在 SO 上发帖要快。

是否 File.ReadAllLines + String.Split(',') = csv 解析器?

【讨论】:

  • "不是File.ReadAllLines + String.Split(',') = csv 解析器吗?" - 不,它没有。它不处理带有嵌入逗号的引用文本字段。它不处理超过 1 行的数据。它不处理 NULL 文字。 String.Split 是最糟糕的“解析”字符串的方法之一,因为它执行了所有新的字符串分配和复制,这在游戏引擎中绝对是要避免的。
  • 它也不处理跨越多行的文本单元格(这是 CsvHelper.io 处理的)。
  • 理想情况下,我还想将 csv 封装到某种数据结构中,以使索引更容易。重新实现 CSV 解析器是一项相当大的任务。可悲的是,似乎唯一的解决方案存在于 3rd 方库中,而 .NET 本身存在于 VisualBasic 中
猜你喜欢
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
  • 2018-10-06
  • 2011-06-18
  • 1970-01-01
相关资源
最近更新 更多