我刚刚开始学习统一,我有一些麻烦继续我的练习。我需要移动2辆汽车使用坐标存储在一个. txt文件称为"positions.txt"。汽车必须在同一时间移动。在"笛卡尔"列表中有数字,必须分为4组(时间,x,y,z)。
我想为每辆车创建2个数组:时间数组和向量3数组。
首先,我需要读取文件并将数字存储在数组中。我发现了几个选项,我尝试了这一个没有成功:https://allison-liem.medium.com/unity-reading-external-json-files-878ed0978977我应该遵循哪种方法?
谢谢你。
文件"位置. txt"
[
{
"id":"car_1",
"position":{
"cartesian":[
1,0,0,0,
2,0,0,2,
3,1,0,3,
4,1,0,6,
5,2,1,9,
6,2,0,11,
7,3,1,13,
8,3,0,15,
9,3,1,18,
10,4,1,20]
}
},
{
"id":"car_2",
"position":{
"cartesian":[
1,0,0,0,
2,0,0,2,
3,1,0,3,
4,1,0,6,
5,2,1,9,
6,2,0,11,
7,3,1,13,
8,3,0,15,
9,3,1,18,
10,4,1,20]
}
}
]
2条答案
按热度按时间wlwcrazw1#
首先,您有一个JSON,请参见Serialize and Deserialize Json and Json Array in Unity
我会推荐Newtonsoft Json. NET包,并做eidogg。
然后
然而,
cartesian
数组有点"愚蠢"--请记住,一旦将其作为列表/数组处理,就不会有换行符,并且每个集合开头的冗余索引(1、2、3、4 ......)也没有什么好的意义。我想为每辆车创建2个数组:时间数组和向量3数组。
在我看来,这是没有意义的--如果某个信息显然属于耦合在一起的东西,那么将其拆分为单独的数组将是不好的。
无论采用哪种方法,在遍历列表/数组时都必须手动提取值
例如
或者如果你真的需要第一个值,我会使用一个自定义类型,比如。
然后进行相应调整
a64a0gku2#
我看到你提到的那篇文章使用了Unity内置的JSON解析库,它不支持数组解析,正如https://stackoverflow.com/a/36244111/13489126的回答所指出的那样。
这就是为什么你的方法不起作用的原因。
我建议您使用Newtonsoft的Json解析器,而不是Unity的。