其实除了安卓环境下,其他都可以直接通过文件流的形式读取StreamingAssets文件夹下的文件。
而大部分环境下都可以通过www来读取,所有本文就只介绍通过www来读取StreamingAssets文件夹下的文件。
void Awake()
{
string path =
#if UNITY_ANDROID && !UNITY_EDITOR
Application.streamingAssetsPath + "/Josn/data.json";
#elif UNITY_IPHONE && !UNITY_EDITOR
"file://" + Application.streamingAssetsPath + "/Josn/data.json";
#elif UNITY_STANDLONE_WIN||UNITY_EDITOR
"file://" + Application.streamingAssetsPath + "/Josn/data.json";
#else
string.Empty;
#endif
StartCoroutine(ReadData(path));
}
IEnumerator ReadData(string path)
{
WWW www = new WWW(path);
yield return www;
while (www.isDone == false)
{
yield return new WaitForEndOfFrame();
}
}
在安卓环境下,读取json文件,同时转成json时,一直报错,在网上看到其他人在安卓环境下读取json的方法。
WWW www = new WWW(path);
yield return www;
while (www.isDone == false)
{
yield return new WaitForEndOfFrame();
}
string s = Encoding.UTF8.GetString(www.bytes, 3, www.bytes.Length - 3);
//通过LitJson将字符串转为json文件。
JsonData js = JsonMapper.ToObject(text);
这样就可以成功转为json文件而不报错了。
上文中
string s = Encoding.UTF8.GetString(www.bytes, 3, www.bytes.Length - 3);
为什么跳过前三个字节可以通过下面的链接查看原博主的解释。
参考文章:https://blog.csdn.net/leosheldon/article/details/79055307