StreamingAssetsフォルダの読み込み異常

4879 ワード

1、今日、StreamingAssetsフォルダのテキストファイルを読んでいたところ、異常が発生し、1時間以上かかって解決しました.
 
2、テキストフォルダの場所:StreamingAssetsフォルダに新しいファイル名をAI_とする01のテキストファイル
 
3、テキストファイルの内容、テスト使用:
[Idle]NoHealth>DeadSawPlayer>Pursuit[Dead][Pursuit]NoHealth>DeadReachPlayer>AttackingLosePlayer>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の2種類のフォーマットはすべて試みて、依然として解決することができません
 
7.3.1:ファイル名が正しいかどうかを確認し、間違いがないことを確認したら、出力して、ここで異常を発見した:出力の経路はStreamingAssetsだけで、後ろのAI_がない01.txt,チェックコードはパスの接続が行われていることを決定する.
7.3.2:経路が正しく読み取れないことを発見して、推測は動態のフィールドが協力して使うことができないので、ファイルのアドレスをstaticのに変えてテストを行う
    
[HideInInspector]
public static  string aiConfigFile = "AI_01.txt";

 
 
7.3.3:この時正常に運行して、ファイルも正常に読み取った
 
8、急がなくて、また、正常に运行した上で私はまたそれをstatic削除して、それから运行して、今度はまた间违いがなくて、葛藤の中で...
 
9、だからここでは、私と同じ異常が発生したら、私が与えた手順に従って解決することができます.
事故が起きなければ解決できるはずですが、間違いがないのが一番です.バグを探すのに時間がかかりすぎます
 
転載先:https://www.cnblogs.com/zhh19981104/p/9776550.html