[英]create grid by reading from external file in Unity
创建网格时,我通常会去
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();
}
}
但我想从外部文本文件中读取地图信息。 单元格本身具有此构造函数
public Cell(Celltype type = null, Enemy enemy = null)
我想创建一个文本文件语法来读取它。
这是示例行
[(火)(霜冻,地精)()]
Unity文档提供了一个TextAsset
https://docs.unity3d.com/Manual/class-TextAsset.html
我尝试以此方式读取文件
private void ReadFile(string fileToRead)
{
TextAsset txt = Resources.Load("Maps/" + fileToRead) as TextAsset;
string content = txt.text;
}
但这只是返回全文。 我想用四个不同的行创建此示例地图
[(forest,dragon)()] ->两个单元格,第一个包含元素和敌人,第二个为空
[(frost,dragon)()()(frost,yeti)] ->四个单元格,2和3为空
[(死亡,巨人)(火,地精)] ->两个带有元素和敌人的牢房
[()()()()()()] ->六个空单元格
创建地图时,如何在我的代码中获取文本信息? 也许对于外部文件有更好的语法?
您应该解析结果字符串( content
)。 请注意,创建自己的格式可能不是一个好主意,因为您必须自己编写解析器。 考虑使用现有的标记语言,例如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相关的类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.