由于StreamingAsset目录在安卓和IOS下,打包方式不同,文件读取方法不同。
以下函数,经过反复测试,可以读取所有平台的文本文件。
// 支持多平台的文本文件读取
public static string GetFileStr(string path)
{
string jsonStr = "";
#if UNITY_ANDROID || UNITY_IOS
jsonStr = GetStreamingPathStr(path);
#else
jsonStr = FileRead(path);
#endif
return jsonStr;
}
public static string GetStreamingPathStr(string path)
{
string fileStr = "";
var uri = new System.Uri(path);
var request = UnityWebRequest.Get(uri);
var www = request.SendWebRequest();
if (request.isNetworkError || request.isNetworkError)
{
MyLog.log.Debug(request.error);
}
else
{
while (true)
{
if (!request.isDone) continue;
fileStr = request.downloadHandler.text;
break;
}
}
return fileStr;
}
public static string FileRead(string path)
{
StreamReader sr = File.OpenText(path);
//读取到文件最后
string str = sr.ReadToEnd();
sr.Close();
sr.Dispose();
return str;
}