爱程序网

unity安卓读写目录

来源: 阅读:

unity安卓的IO,对于可读写、只读等功能都做了很多很严苛的限制。

读写路径先不考虑安卓原生APK,此文暂时只说unity下的两种具有象征性的操作路径:

  

//以下是unity只读目录,在Asset下新建一个文件夹,将其命名为StreamingAssets,
//然后可以对其进行只读加载。

string path = Application.streamingAssetsPath  + "//" + "文件名.后缀名";

//以下是Unity可读可写目录,打开安卓手机存储,根目录下找到Android/data/,
//在data里面全部对应的是APK的包名,
//Application.streamingAssetsPath就是对应的当前APK的包名目录,
//当使用存储的时候,该目录下会自动生成一个file文件夹,
//此file文件夹的目录就是当前获取的目录,可读可写,当APK卸除的时候,会自动删除,
//当APK重装的时候,不会删除。

string path = Application.persistentDataPath+ "//" + "文件名.后缀名";

  

  另外,这两个目录只能在主线程下去调用。

  如果在异步下载里用到该目录,当用消息者模式进行回发的时候,执行的回调并不在主线程里,如果需要对应操作GameObject,则会出现报错行为,如果要做异步下载,请在非mono类里面增加Queue<T>的队列管理,并将回发事件写入队列,由mono的Update对队列进行监听。

  这样每次下载完成,下载的异步线程就会把消息写入Queue的队列,此时Update一直在监听队列的数量,当数量大于0的时候,每一次update都会对队列进行一次Dequeue(),每一次Dequeue的时候,都会从主线程发送一条消息去执行,消息的回调当调到  GameObejct的时候也不会出现报错。

  下一篇预告:Unity使用Http进行同步和异步下载。

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助