ユニティPCとアンドロイドの異なるプラットフォームでのxmlファイルの読み取りの比較

この記事はローカルxmlファイルをロードします

1つ:PCプラットフォームの下

1:persistentDataPathパスでもstreamingAssetsPathでも、loadを直接使用して読み取りおよび書き込みアクセスを取得できます

        例:XmlDocument doc = new XmlDocument(); doc.Load(path);

2:アセットフォルダーの下にxmlファイルを格納するための新しいフォルダーを作成すると、パッケージ化時にこのフォルダー内のxmlを読み取ることができないことに注意してください。 

解決策:1:xmlファイルをStreamAssetsフォルダーの直下に置きます

                    2:パッケージ化後、保存されているxmlフォルダーを**** _ Dataフォルダーの下に配置します(xmlフォルダーがAssetsフォルダーの直下にない場合は、パスが均一であることを確認してください。例:Aeeets / Xml / name .xml、パッケージ化後、**** _ Dataフォルダーの下に新しいフォルダーXmlを作成し、最後にname.xmlをその中に入れます)             

3:wwwクラスを使用してロードします。

     wwwを使用してxmlファイルをロードするには、「file://」を追加する必要があります。

     例えば。:  

  IEnumerator IEPCRead(string path)
      {
          WWW www = new WWW("file://" + path);
          //do.......   
      }

 

2:Androidプラットフォームの下

1:streamingAssetsPathパスのにxmlを直接ロードすることはできません。persistentDataPataパスの下にxmlをロードできます。

     例えば。:

  string path1 = Application.streamingAssetsPath + "/stream.xml";
  XmlDocument doc = new XmlDocument();
  doc.Load(path1);   //错误
   string path1 = Application.persistentDataPath + "/stream.xml";
  XmlDocument doc = new XmlDocument();
  doc.Load(path1);// 正确

2:自分で作成したフォルダの下のxmlを読み取れません

         これは、pcプラットフォームの2番目の項目と同じですが、パッケージ化後にapkを操作できないため、androidプラットフォームでxmlファイルを格納するフォルダーを作成しないでください。

3:wwwを使用してロード

         wwwを使用してxmlファイルをロードし、「jar:file:// protocol」を追加します

  IEnumerator IEAndroidRead(string path)
         {
            WWW www = new WWW("jar:file://" + path);
           //do.......
         }

 

【変更】

   ps:ここで試したところ、streamingAssetsPathが「jar:file://」プロトコルを追加しないことがわかりました(追加するとエラーが発生します)

 

  日付:2017.11.1

  例を追加

3:まとめ

     pc:対応するパスにxmlファイルを直接ロードできますが、フォルダーを作成してパッケージ化後に読み取るときにエラーに注意する必要があります。

          wwwでロードするときに「file://」プロトコルを追加します

     android:persistentDataPataパスの下でのみxmlファイルをロードできます。それ以外はロードできません。

                         wwwでロードする場合、「jar:file://」プロトコルを追加する必要がありますが、streamingAssetsPathは「jar:file://」プロトコルを追加できません。

おすすめ

転載: blog.csdn.net/K20132014/article/details/75224777