[不器用な木Unity 3 D]雑記003・Unity Androidでファイルを読み込む


今週は質問に何晩も振り回されました.それはAndroidでファイルを読むことです.これは簡単なことですが、想像はいつも素晴らしいです.
 
 
愚かな木の花の心は貢献して、何ですか?花心?いいえ、心がけです.
転載は明記してください、原文の住所:http://www.benmutou.com/archives/2094
不器用な木とゲームの開発
 
1.パソコンでファイルを読み込む
まず解決しなければならないのはもちろんパソコンでファイルを読むことです.これは難しくありません.ネット上には資料がたくさんあります.
例:
  1. public static string LoadFile(string filePath)
  2. {
  3. string url = Application.streamingAssetsPath + "/" + filePath;
  4. return File.ReadAllText(url);
  5. }

 
ファイルはAssetsStreamingAssetsディレクトリの下に置かなければなりません(サブディレクトリがあります).そうしないと、他のデバイスに移植された後、ファイルを読み取ることができません.
このディレクトリの下のファイルは読み書きしかできません.私の目的はファイルを読むことだけです.
Application.streamingAssetsPathは、プラットフォームの下で対応する正しいパスを自動的に返します(AssetsStreamingAssetsディレクトリの下のファイルは、異なるプラットフォームで異なるパスに保存されるので、正しいパスを取り出す必要があります).
次に、File.ReadAllTextを使用してファイル全体を読み込み、文字列オブジェクトとして保存します.
 
2.Androidでファイルを読み込む
にある
パソコンでファイルを読むのは簡単ですが、資料が多いので、Androidでファイルを読むのは惨めです.
皆さんが注目しているのはIosかもしれませんが、私だけがAndroidを優先しています.
 
検索してみてください.基本的に最初に検索したのは宣雨松Momoのブログで、彼が書いたのは「ファイルを読む」方法(100%成功)です.
しかし、その方法ではコードにファイルを作成してからファイルを読み込む必要があります.私が必要なのは静的ファイル、つまり事前に作成したファイルを読み取ることです.
MomoもIosに集中していると推定されているので、Androidのテストはあまり行われていません.
 
他の検索記事も経路の問題(つまり私の最初のタイトルで言った内容)を話していることが多い.
だから、私は文句を言わざるを得ません.不思議ですね.なぜAndroidの読み取りに注目する人がこんなに少ないのでしょうか.
これはAPIドキュメントに書かれていますか?(もしあったら、見つけられず、どんなキーワードを使うべきか分からなかったことを教えてください)
 
よし、くどくど言わないで、少ないのは少し少ないが、やはりこの問題に言及する資料がある.
ソリューションといえば、確かに簡単ですが、Androidでファイルを読み取るには、WWWで読まなければなりません.次のコードがあります.
  1. public static string LoadFile(string filePath)
  2. {
  3. string url = Application.streamingAssetsPath + "/" + filePath;
  4. #if UNITY_EDITOR
  5. return File.ReadAllText(url);
  6. #elif UNITY_ANDROID
  7. WWW www = new WWW(url);
  8. while (!www.isDone) { }
  9. return www.text;
  10. #endif
  11. }

理論的にはWWWはネットファイルを読み取るためのものですが、Androidではこのような方法で読み取る必要があるのはおかしいと思います.
もっと良い方法があるかもしれません.もしあったら、私と分かち合ってほしいです.
 
3.終了
ここで注意しなければならないのは、読み込んだテキストを行ごとに分割したい場合です.
 
return www.text.Split(new string[] { “\r” }, StringSplitOptions.None);
 
「r」で分割しなければならない.そうしないと、めちゃくちゃな変な質問が出る(どうやって知ったのか聞かないで、かわいがって、言いたくない).
 
はい、私のこの文章が私と同じようにこの問題に振り回されている人に役立つことを望んでいます.
The End.