C# 通过读取Unity中的外部文件创建网格

C# 通过读取Unity中的外部文件创建网格,c#,unity3d,C#,Unity3d,创建网格时,我通常会选择 private Cell[,] mapCells = new Cell[10, 10]; for (int x = 0; x < mapSizeHorizontal; x++) { for (int y = 0; y < mapSizeVertical; y++) { mapCells[x, y] = new Cell(); } } 我想创建一个文本文件语法来读取它 []表示新行 ()表示一行中的一个单元

创建网格时,我通常会选择

private Cell[,] mapCells = new Cell[10, 10];

for (int x = 0; x < mapSizeHorizontal; x++)
{
    for (int y = 0; y < mapSizeVertical; y++)
    {
            mapCells[x, y] = new Cell();
    }
}
我想创建一个文本文件语法来读取它

  • []表示新行
  • ()表示一行中的一个单元格
这是一个示例行

[(火)(霜,地精)()]

  • 第一个单元将是一个fire类型的单元。这个牢房没有敌人 在上面
  • 第二个细胞是frost型细胞。这个牢房里有一个妖精 在上面
  • 第三个单元没有类型,也没有敌人
Unity文档提供了一个
TextAsset

我试着这样读文件

private void ReadFile(string fileToRead)
{
    TextAsset txt = Resources.Load("Maps/" + fileToRead) as TextAsset;
    string content = txt.text;
}
但这只会返回完整的纯文本。我想用四个不同的行创建这个示例地图

[(森林,龙)(])->两个单元格,第一个有元素和敌人,第二个是空的

[(霜,龙)(()(霜,雪人)]->四个单元,2和3是空的

[(死亡,巨人)(火焰,地精)]->两个带有元素和敌人的单元

[()]六个空单元格


创建地图时,如何将文本信息输入到代码中?可能有更好的外部文件语法?

您应该解析结果字符串(
内容
)。请注意,创建自己的格式可能不是一个好主意,因为您必须自己编写解析器。考虑使用已经存在的标记语言,如XML或JSON.

下面是您的示例在JSON中的样子:

{
    "level": [
        {"row": [{"type": "forest", "monster": "dragon"}, {}]},
        {"row": [{"type": "forest", "monster": "dragon"}, {}, {}, {"type": "frost", "monster": "yeti"}]},
        {"row": [{"type": "death", "monster": "giant"}, {"type": "fire", "monster": "goblin"}]},
        {"row": [{}, {}, {}, {}, {}, {}]}
    ]
 } 
如果将此JSON存储到字符串中,则可以使用JSON.NET库等从该字符串创建对象


我个人会使用JSON,但如果您不想使用第三方库,请知道.NET API已经存在与XML相关的类。

您应该解析生成的字符串(
内容
)。请注意,创建自己的格式可能不是一个好主意,因为您必须自己编写解析器。考虑使用已经存在的标记语言,如XML或JSON.

下面是您的示例在JSON中的样子:

{
    "level": [
        {"row": [{"type": "forest", "monster": "dragon"}, {}]},
        {"row": [{"type": "forest", "monster": "dragon"}, {}, {}, {"type": "frost", "monster": "yeti"}]},
        {"row": [{"type": "death", "monster": "giant"}, {"type": "fire", "monster": "goblin"}]},
        {"row": [{}, {}, {}, {}, {}, {}]}
    ]
 } 
如果将此JSON存储到字符串中,则可以使用JSON.NET库等从该字符串创建对象


我个人会使用JSON,但如果您不想使用第三方库,请知道.NET API已经存在与XML相关的类。

您应该解析生成的字符串(
内容
)。请注意,创建自己的格式可能不是一个好主意,因为您必须自己编写解析器。考虑使用已经存在的标记语言,比如XML(只是一个例子,不一定是用例的最佳语言)。你有什么建议吗?我考虑过JSON,但我不知道我会将其作为答案发布。您应该解析结果字符串(
content
)。请注意,创建自己的格式可能不是一个好主意,因为您必须自己编写解析器。考虑使用已经存在的标记语言,比如XML(只是一个例子,不一定是用例的最佳语言)。你有什么建议吗?我考虑过JSON,但我不知道我会把它作为一个答案发布。