[Unity] 各平台檔案路徑


 

在PC上和IOS上讀取XML文件的方式略有差別,IOS上不支持如下方法載入XML文件:

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load("Assets/Resources/text.xml");

IOS上載入XML的正確方法有2種:

(1)方法一

TextAsset textAsset = (TextAsset)Resources.Load(filename, typeof(TextAsset));

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(new StringReader(textAsset.text));

(2)方法二

TextAsset textAsset = (TextAsset)Resources.Load(filename, typeof(TextAsset));

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.LoadXML(textAsset.text);

上述2種方法分別使用了XmlDocument的Load()方法和LoadXML()方法,傳入的參數有些差別,不過都需要通過Resources.Load()方法先將文件載入到一個TextAsset中,然后傳給xmlDoc的載入方法。

(3)方法三

需要在IPad上進行持久化操作的文件,比如游戲的本地存檔等數據,是不能存放在Resources目錄下的,因為IPad上沒法對其進行寫操作。

那么對於IPad上讀寫XML,應該怎樣進行操作呢?方法如下所述:

將需要序列化的文件存放在Application.persistentDataPath目錄下,該目錄是一個平台相關的路徑。

寫:

XmlDocument xmlDoc = new XmlDocument();

...

xmlDoc.Save(Application.persistentDataPath+"//abc.xml");

讀:

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(Application.persistentDataPath+"//abc.xml");

PS1:還有另外一種實現本地持久化操作的方法,使用PlayerPrefs類,此類是U3D提供的專門用來進行玩家偏好設置的類,不過偶暫時未使用此類,是否方便尚未測試。

PS2:

對於Android平台:使用上述方法(3),即和IOS平台相同的操作即可。

對於Mac平台:使用上述方法(1)/(2)。

對於Windows平台:使用上述方法(1)/(2)。

 

 

 

Unity中的Path對應各平台中的Path

 

IOS:
Application.dataPath :                      Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data
Application.streamingAssetsPath :   Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw
Application.persistentDataPath :      Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents
Application.temporaryCachePath :   Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Library/Caches

Android:
Application.dataPath :                         /data/app/xxx.xxx.xxx.apk
Application.streamingAssetsPath :      jar:file:///data/app/xxx.xxx.xxx.apk/!/assets
Application.persistentDataPath :         /data/data/xxx.xxx.xxx/files
Application.temporaryCachePath :      /data/data/xxx.xxx.xxx/cache

 

Windows:
Application.dataPath :                         /Assets
Application.streamingAssetsPath :      /Assets/StreamingAssets
Application.persistentDataPath :         C:/Users/xxxx/AppData/LocalLow/CompanyName/ProductName
Application.temporaryCachePath :      C:/Users/xxxx/AppData/Local/Temp/CompanyName/ProductName

 

Mac:
Application.dataPath :                         /Assets
Application.streamingAssetsPath :      /Assets/StreamingAssets
Application.persistentDataPath :         /Users/xxxx/Library/Caches/CompanyName/Product Name
Application.temporaryCachePath :     /var/folders/57/6b4_9w8113x2fsmzx_yhrhvh0000gn/T/CompanyName/Product Name

 


Windows Web Player:

Application.dataPath :             file:///D:/MyGame/WebPlayer (即導包后保存的文件夾,html文件所在文件夾)
Application.streamingAssetsPath :
Application.persistentDataPath :
Application.temporaryCachePath :




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM