【发布时间】:2017-04-03 07:16:52
【问题描述】:
我正在尝试从 json 文件中读取字符串并将其传递给我在 Unity 中的 UI 文本,我面临的问题是字符串始终为空,我不知道为什么,现在我找到了 JSON 文件路径并读取它,但是当我尝试访问字符串时它为空。我不确定如何阅读 json。我真的不明白这一切是如何运作的。我是 JSON 格式的新手,我正在尝试练习它。这是我的第一种方法。我正在使用 Unity Engine,我正在使用 Streaming Assets 读取 json 文件
从 Json 脚本中读取数据:
using UnityEngine;
using System.IO;
public class ReadFromJson : MonoBehaviour {
private string _filePath = "myText.json";
Data dh;
string str;
void Start()
{
LoadGameData();
}
public Data getCurrentRoundData()
{
return dh;
}
private void LoadGameData()
{
string filePath = Path.Combine(Application.streamingAssetsPath, _filePath);
if (File.Exists(filePath))
{
string dataAsJSON = File.ReadAllText(filePath);
DataHolder loadedData = JsonUtility.FromJson<DataHolder>(dataAsJSON);
dh = loadedData.data;
str = loadedData.data.TextToPass;
Debug.Log("My Text is" + dh.TextToPass);
Debug.Log("Path Exist");
}
else
{
Debug.LogError("CANNOT LOAD GAME DATA!!");
}
}
}
将 json 数据应用到我的 UI 文本的管理器
DataController = FindObjectOfType<ReadFromJson>();
_data = DataController.getCurrentRoundData();
myText.text = _data.TextToPass;
DataHolder.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class DataHolder {
public Data data;
}
Json 文本
{"DataHolder":
{
"TextToPass":"I'm A Horse"
}
}
数据.cs
[System.Serializable]
public class Data {
public string TextToPass ;
}
我得到的是 TextToPass 为空
【问题讨论】:
-
你能分享你的DataHolder模型吗?
-
是检查更新问题
-
数据模型怎么样?
-
File Exist 返回 true 是,而我的 json 只有一个 TextToPass,上面写着我是一匹马,我只是想阅读该文本并将其应用于我的 Ui 文本