StreamingAssets文件夹下的只读不可写路径:
安卓读:filePath = Application.streamingAssetsPath + "/文件名.格式名";
IOS读:filePath = "file://" + Application.dataPath + "/Raw" + "/文件名.格式名";
PC读:filePath = "file://" + Application.streamingAssetsPath + "/文件名.格式名";/
StreamingAssets文件夹下的可读可写路径:
安卓: path = Application.persistentDataPath + "/文件名.格式名";
IOS: path = Application.persistentDataPath + "/文件名.格式名";
PC: path = "file://" + Application.persistentDataPath + "/文件名.格式名";//
另外,这两个目录只能在主线程下去调用。
如果在异步下载里用到该目录,当用消息者模式进行回发的时候,执行的回调并不在主线程里,如果需要对应操作GameObject,则会出现报错行为,如果要做异步下载,请在非mono类里面增加Queue<T>的队列管理,并将回发事件写入队列,由mono的Update对队列进行监听。
这样每次下载完成,下载的异步线程就会把消息写入Queue的队列,此时Update一直在监听队列的数量,当数量大于0的时候,每一次update都会对队列进行一次Dequeue(),每一次Dequeue的时候,都会从主线程发送一条消息去执行,消息的回调当调到 GameObejct的时候也不会出现报错。
下一篇预告:Unity使用Http进行同步和异步下载。