转载自:https://www.xuanyusong.com/archives/2656

Application.dataPath路径在PC上无论是Editor还是运行时毫无压力非常万能,但是在手机上完全无用。手机上有两个重要的路径:Application.streamingAssetsPath和Application.persistentDataPath

1.Application.streamAssetsPath

它是一个只读路径,游戏运行中程序只能对它进行读取,并无法写入。在Unity的Assets/目录下起一个叫StreamingAssets的文件夹即可。一般可以把一些预制的二进制文件(比如AssetBundle,mp4等)放在里面,这些文件在打包时不会被压缩(最好只放少量的文件,而且要做好加密工作,不然别人一解压就得到了里面的内容了),因此读取的速度是比较快的。。我个人觉得如果是assetBundle最好不要放在里面,因为用www把本地的assetbundle读取后,会将解压后的资源放在cache里面,但是由于StreamingAssets文件夹是只读文件,所以你没法删除它,那么应用程序就会更加占用空间。举个例子,就好比你在电脑上解压了一个zip文件,那么其实你只需要使用解压后的文件。但是原始用zip如果还保留在文件夹下,那么容量就更大了。同样的assetbundle如果放在cdn上去下载,那么你本地就不会保留这个多余的assetbundle文件,而是把解压后的资源保存在Cache中。

如果你坚持要把assetbundle放在StreamingAssets文件夹下,我觉得一定要做好加密的工作。因为把你的.ipa或.apk下载后都不用破解资源直接可以把你的assetBundle原封不动的取出来。

2.Application.persistentDataPath

它是一个可以读写的路径,在IOS上就是应用程序的沙盒。而在Android可以是程序的沙盒,也可以是sdcard,在打包Android的时候,ProjectSetting页面有一个选项Write Access,可以设置它的路径是沙盒还是sdcard。

如果你在这个路径下写入文件后,IOS上可以通过同步推一类的助手直接取出来写入的文件。在Android上如果你设置保存在沙盒中,那么必须root才能取出文件。不过建议你最好设置写入sdcard里,这样不用root也可以在电脑上访问文件。假设安装的手机没有sdcard,或者sdcard被锁住(有的安卓手机插拔usb会锁一下sdcard),那么它会自动指向你的应用程序沙盒路径。Application.persistentDataPath可以在运行后进行读写,由于有了这个特性,我们可以将需要热更的文件放在里面(当然不能直接放,可以将一些文件放在Application.streamingAssetsPath,在运行后再将Application.streamingAssetsPath里面的文件移动到Application.persistentDataPath下,再进行热更。也可以完全从服务器上下载后存放在Application.persistentDataPath。)

我觉得它的最大缺点就是只能在运行时才能写入或者读取,假设你想在打包前写入一些二进制文件在persistentDataPath里面是不行的。假设你要写android的交互插件,那么.java类中是无法访问unity里面的资源的。但是有一个办法,如下代码,图片放在Resources文件夹下,比如Awake方法中把二进制文件拷贝在persistentDataPath下面,这样c#java两边就都可以访问它了

手机上的unity路径的更多相关文章

  1. 华为联运游戏审核驳回:在未安装或需更新HMS Core的手机上,提示安装,点击取消后,游戏卡屏(集成的6.1.0.301版本游戏SDK)

    问题描述 更新游戏SDK到6.1.0.301版本之后,游戏包被审核驳回:在未安装或需更新华为移动服务版本(HMS Core)的手机上,提示安装华为移动服务(HMS Core),点击取消,游戏卡屏.修改 ...

  2. 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?

    手机上的APP , 像QQ和微信等都可以在图标上动态显示消息数(最大99) , 那么你有没有想过这些效果是如何实现的?桌面上开发的传统应用程序能否也实现类似的功能? 1 思路 桌面快捷方式的图标本质上 ...

  3. Unity路径规划

    Unity路径规划  转自:http://www.cnblogs.com/zsb517/p/4090629.html 背景 酷跑游戏中涉及到弯道.不规则道路. 找来一些酷跑游戏的案例来看,很多都是只有 ...

  4. 手机上的ROM与RAM

    ROM:read only memory翻译为只读存储器. RAM:read access memory翻译为随机存储器. 下面是一张手机的配置参数表. 简单来说,RAM就是真正意义上的内存,而ROM ...

  5. 有谁知道什么工具测试IOS手机上APP的性能软件啊?

    有谁知道什么工具测试IOS手机上APP的性能软件啊?

  6. 第一步:卸载手机上的“WIFI万能钥匙”! 会分享自己家的wifi

    http://www.znds.com/tv-164866-1-1.html 楼主今日家中WIFI卡的不行,心想,20M的电信光纤没理由这么卡!于是就在网上查找了许多资料,接下来统一收集整理给大家!第 ...

  7. 远程实时调试手机上的Web页面

    1. 安装    需要Node.js平台, 先安装好后, 打开Node.js command prompt, 通过NPM来安装 weinre npm -g install weinre 2. 启动   ...

  8. Android手机上,利用bat脚本模拟用户操作

    ………… 那么你就可以来看看这篇帖子了. 言归正传 利用bat脚本模拟用户操作,需要用到两点: ①就是adb命令了,adb命令可以用来模拟用户在手机上的操作 ②bat语言,就是批处理语言,主要用来进行 ...

  9. 如何制作一个手机上的Github图床捷径(workflow)

    准备工作 github账号与绑定邮箱 建立一个仓库用于存放图片 生成github token 注意生成之后要备份以免后面要用到(页面刷新之后会看不见) 了解github上传文件的 GitHub API ...

随机推荐

  1. lumen 响应宏

    响应宏 laravel 中的响应宏,说明文档中有,lumen的没有找到.于是参考laravel 项目中的响应宏写了个Lumen的 1. 新建文件 App\Providers\ResponseMacro ...

  2. 联盟链IBM的超级账本Hyperledger Fabric框架,JP Morgan’s Quorum

    联盟链IBM的超级账本Hyperledger Fabric框架,JP Morgan’s Quorum JP Morgan’s Quorum https://www.coindesk.com/jpmor ...

  3. 前端小插件之手写js循环滚动特效

    很多前端都离不开滚动的特效,调用插件繁琐,后期更改麻烦,考虑到这些因素,自己写了一套无限循环滚动的小特效. 首先滚动特效很好写,用css就可以完成,下面写一个基础css向上循环滚动特效 html &l ...

  4. I still have a dream!

    当聊起梦想时,哥总会说别跟我谈梦想,我已经戒了!现在的我对梦想并不感冒,总是冷眼旁观很多事情,那些经不起时间检验的事和人,总会消散在历史云烟中,若干年后,又有谁还会记得那些遗弃在历史尘埃中,琐碎的芝麻 ...

  5. 使用vnc远程操控Centos7.6

    安装vncserver [root@elegant-snap-3 ~]# yum install tigervnc-server -y Loaded plugins: fastestmirror De ...

  6. 【MySQL】rds 不支持镜像表/联合表,怎么办?

    出于对业务的不了解,往往会让人做出错误的判断 CREATE TABLE `new_tables` (   `customer_id` int(11) NOT NULL AUTO_INCREMENT C ...

  7. JAVA concurrent包下Semaphore、CountDownLatch等用法

    CountDownLatch 跟join的区别 CountDownLatch用处跟join很像,但是CountDownLatch更加灵活,如果子线程有多个阶段a.b.c; 那么我们可以实现在a阶段完成 ...

  8. 工作必备之正则匹配、grep、sed、awk

    常用正则:匹配空行:^\s*\n 匹配www开头:^www 添加行号:awk '$0=""NR". "$0' /etc/yum.conf 1.所有域名前加www ...

  9. 搜索 - 广度优先搜索(BFS)普通模板

    bfs广度优先搜索模板 本人蒟蒻,为响应号召 写下bfs模板一篇 可以适用于求最短步数,等最优解问题.如有不足或者不对的地方请各位大佬及时指出 ^-^ 欢迎来戳 具体实现代码(C++) 各个模块功能和 ...

  10. 排序算法-快速排序(Java)

    package com.rao.sort; import java.util.Arrays; /** * @author Srao * @className QuickSort * @date 201 ...