使用的命名空间如下

using LitJson;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;

1、通过UnityWebRequest获取本地StreamingAssets文件夹中的Json文件

      /// <summary>
/// 通过UnityWebRequest获取本地StreamingAssets文件夹中的Json文件
/// </summary>
/// <param name="fileName">文件名称</param>
/// <returns></returns>
public string UnityWebRequestJsonString(string fileName)
{
string url; #region 分平台判断 StreamingAssets 路径
//如果在编译器 或者 单机中 ……
#if UNITY_EDITOR || UNITY_STANDALONE url = "file://" + Application.dataPath + "/StreamingAssets/" + fileName;
//否则如果在Iphone下……
#elif UNITY_IPHONE url = "file://" + Application.dataPath + "/Raw/"+ fileName;
//否则如果在android下……
#elif UNITY_ANDROID
url = "jar:file://" + Application.dataPath + "!/assets/"+ fileName;
#endif
#endregion
UnityWebRequest request = UnityWebRequest.Get(url);
request.SendWebRequest();//读取数据
while (true)
{
if (request.downloadHandler.isDone)//是否读取完数据
{
return request.downloadHandler.text;
}
}
}
```

2、通过UnityWebRequest和StreamReader读取本地StreamingAssets文件夹中的Json文件

 1      /// <summary>
2 /// 通过UnityWebRequest和StreamReader读取本地StreamingAssets文件夹中的Json文件
3 /// </summary>
4 /// <param name="jsonName">json文件名</param>
5 /// <returns></returns>
6 public string StreamReaderJsonFromSSPath(string jsonName)
7 {
8 string url;
9 #region 分平台判断 StreamingAssets 路径
10 //如果在编译器 或者 单机中 ……
11 #if UNITY_EDITOR || UNITY_STANDALONE
12 url = Application.dataPath + "/StreamingAssets/" + jsonName;
13 //否则如果在Iphone下……
14 #elif UNITY_IPHONE
15
16 url = Application.dataPath + "/Raw/"+ fileName;
17 //否则如果在android下……
18 #elif UNITY_ANDROID
19 url = Application.dataPath + "!/assets/"+ fileName;
20 #endif
21 #endregion
22 UnityWebRequest webRequest = UnityWebRequest.Get(url);
23 webRequest.SendWebRequest();//读取数据
24 while (true)
25 {
26 if (webRequest.isNetworkError)
27 {
28 Debug.LogError(url + "请求错误:" + webRequest.error);
29 }
30 else
31 {
32 if (webRequest.downloadHandler.isDone)//是否读取完数据
33 {
34 //读取
35 Encoding endoning = Encoding.GetEncoding("utf-8");//识别Json数据内容中文字段
36 StreamReader streamReader = new StreamReader(url, endoning);
37 string str = streamReader.ReadToEnd();
38 streamReader.Close();
39 return str;
40 }
41 }
42 }
43 }

3、通过StreamReader读取本地StreamingAssets文件夹中的Json文件

      /// <summary>
/// 通过UnityWebRequest获取本地StreamingAssets文件夹中的Json文件
/// </summary>
/// <param name="fileName">文件名称</param>
/// <returns></returns>
public string UnityWebRequestJsonString(string fileName)
{
string url; #region 分平台判断 StreamingAssets 路径
//如果在编译器 或者 单机中 ……
#if UNITY_EDITOR || UNITY_STANDALONE url = "file://" + Application.dataPath + "/StreamingAssets/" + fileName;
//否则如果在Iphone下……
#elif UNITY_IPHONE url = "file://" + Application.dataPath + "/Raw/"+ fileName;
//否则如果在android下……
#elif UNITY_ANDROID
url = "jar:file://" + Application.dataPath + "!/assets/"+ fileName;
#endif
#endregion
UnityWebRequest request = UnityWebRequest.Get(url);
request.SendWebRequest();//读取数据
while (true)
{
if (request.downloadHandler.isDone)//是否读取完数据
{
return request.downloadHandler.text;
}
}
}
```

4、通过FileStream读取本地StreamingAssets文件夹中的文件

    /// <summary>
/// 通过FileStream读取本地StreamingAssets文件夹中的文件
/// </summary>
/// <param name="jsonName"></param>
/// <returns></returns>
public string GetAllFileInfos(string jsonName)
{
string jsonPath = Application.streamingAssetsPath + "/" + jsonName;
try
{
using (FileStream fs = new FileStream(jsonPath, FileMode.Open, FileAccess.Read))
{
fs.Seek(0, SeekOrigin.Begin);
var bytes = new byte[fs.Length];
fs.Read(bytes, 0, (int)fs.Length);
string jsonData = Encoding.UTF8.GetString(bytes);
fs.Flush();
fs.Dispose();
fs.Close();
return jsonData;
}
//Debug.Log("所有文件资源信息Assets下文件夹数量:" + fileInfos.Count);
}
catch (Exception e)
{
Debug.LogError(e.Message);
Debug.LogError("文件读取异常:" + jsonPath);
return string.Empty;
}
}

参考资源:https://www.cnblogs.com/unity3ds/p/11742487.html](https://www.cnblogs.com/unity3ds/p/11742487.html

转载链接:https://blog.csdn.net/U3DCoder/article/details/115464140

最新文章

  1. 【Java每日一题】20161227
  2. 安装freetds小记
  3. Android 手机卫士16--手机杀毒
  4. ipad横竖屏尺寸(转载)
  5. linux自定义脚本添加到rc.local脚本无法正常运行的问题
  6. Time, Clocks, and the Ordering of Events in a Distributed System
  7. 论Collision Detection的作用
  8. Windows上常见的集中布尔类型的比较
  9. ios 中的UI控件学习总结(1)
  10. 当chm文档点击左侧,右侧无内容时的解决方案
  11. css 优先级
  12. 在Qt中如何使用QtDesigner创建的UI文件
  13. eclipse 终极操作技巧
  14. ubuntu-14.10下,安装gcc交叉编译器遇到问题及解决方法
  15. UVa12100,Printer Queue
  16. VIM 自定义语法高亮配置
  17. 在nagios中使用python脚本监控linux主机
  18. wget命令企业级应用参数详解
  19. 论文笔记:Learning Attribute-Specific Representations for Visual Tracking
  20. awk简单用法-(1)

热门文章

  1. Springboot打包部署的步骤
  2. sudo apt-get install libncurses5-dev sudo apt-get install u-boot-tools
  3. synchronized与CAS
  4. Elasticsearch 实战
  5. C# 在GridView里面使用a标签下载文件(图片)
  6. easyui 使用技巧
  7. java okio 找不到的问题
  8. ScrollView 滚动条
  9. jdbc与Statement接口
  10. gorm去重查询 iris框架