1、今天在讀取StreamingAssets文件夾中的文本文件的時候,出現了異常,花了一點時間去解決,把解決步驟結果進行梳理
2、文本文件夾所在位置:在StreamingAssets文件夾中新建一個文件名為AI_01的文本文件
3、文本文件中的內容,測試使用:
[Idle]
NoHealth>Dead
SawPlayer>Pursuit
[Dead]
[Pursuit]
NoHealth>Dead
ReachPlayer>Attacking
LosePlayer>Default
4、讀取文本文件的代碼:
1 public static String Load(string aiConfigFile) 2 { 3 //1、構造 配置文件的完整路徑
4 aiConfigFile = Path.Combine(Application.streamingAssetsPath, aiConfigFile); 5
6 WWW www = new WWW(aiConfigFile); 7 //2、
8 while (true) 9 { 10 if (!string.IsNullOrEmpty(www.error)) 11 { 12 throw new Exception("AI配置文件讀取異常"); 13 } 14 if (www.isDone) 15 { 16 return www.text; 17 } 18
19 } 20 }
5、在其他的類中進行方法的調用來讀取文件,獲得其中的字符串文本
[HideInInspector]
//文件在StreamingAssets中的位置 public string aiConfigFile = "AI_01.txt";
//測試方法,來讀取文件
private void Test()
{
string temp= AIConfigurationReader.Load(aiConfigFile);
}
6、本來按常理來說是可以讀取成功的,但是這個是會運行會顯示AI_01配置文件讀取異常
7、開始解決:
7.1:以為是由於StreamingAssets文件的讀取會因為平台的特殊性,后面進行了修改,依舊無法解決,參考解決方案:Unity官方手冊
7.2:后面覺得可能是文本文件的格式問題,進行了嘗試,UTF-8和ANSI兩種格式都試了,依舊無法解決
7.3.1:檢查了文件名是否正確,確認無錯,則進行輸出,這里就察覺到異常了:輸出的路徑只有StreamingAssets,沒有后面的AI_01.txt,檢查代碼確定是進行了路徑的連接了。
7.3.2:發現路徑無法正確的讀取,猜測是動態的字段無法配合使用,所以把文件地址改為了static的進行測試
[HideInInspector] public static string aiConfigFile = "AI_01.txt";
7.3.3:這個時候運行正常,文件也正常讀取出來了
8、在運行正常的基礎上我又將其static刪除,然后運行,這次又沒有錯誤了,糾結中。。。。。。