unity resources 路径各平台路径加什么前缀

Unity各平台路径总结
时间: 19:00:27
&&&& 阅读:997
&&&& 评论:
&&&& 收藏:0
标签:& & & 路径是Unity开发中令人头疼的一个问题,根据我的开发经验,现将开发中遇到的路径问题总结如下:
& & & 1. 如何读取Application.streamingAssetsPath下的文件?
& & &   Edit、iOS平台可以使用File类来读取。Android平台无法使用File类读取。
& & &   通用的方式为使用WWW进行加载,并且除了Android平台以外,其他平台路径之前需要加"file://"。
& & & 2. 权限问题
& & &  &Application.persistentDataPath路径下的文件可读可写,Application.streamingAssetsPath下的文件则只能读不能写。
& & & 3. 如何在Edit下加载movieTexture?
& & &   &如果使用WWW加载movieTexture的话,经过实验发现只有ogv格式的视频能正确加载出来,其他格式无法正常加载。
& & & & & & 这是可以使用AssetDatabse.LoadAssetAtPath()来加载,并且注意其路径都是相对与项目根路径的相对路径,比如&Assets/Textures/test.jpg&。
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!unity3D url前面加个@有什么用?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
unity3D url前面加个@有什么用?
最近又遇到路径前面加@的情况,想了解下这个@起到了什么作用。谢谢!
我有更好的答案
com大家都知道这是邮箱地址 因为是共识原因 所以unity3d程序们 就这样搞这个函数了这是起到标示的作用 意思就是这是网页地址类的.com 大家都知道这是网页地址
加@。就像 我们的邮箱地址 和网页地址一样 一个只有
采纳率:68%
论坛里面的uWebkit可以直接处理这个事情
为您推荐:
其他类似问题
unity3d的相关知识
等待您来回答2245人阅读
unity3d(5)
经常会用到一些路径读写文件,但是各个平台上一些路径对读写的支持有可能不同,下面给出不同平台unity提供的地址的具体路径,以及一些读写权限
D:/Documents/Xuporter/Assets
persistentDataPath
C:/Users/Administrator/AppData/LocalLow/mj/path
streamingAssetsPath
D:/Documents/Xuporter/Assets/StreamingAssets
temporaryCachePath
C:/Users/ADMINI~1/AppData/Local/Temp/mj/path
2.Android:
/data/app/com.mi.path-1.apk
persistentDataPath
/data/data/com.mi.path/files
读写,强推荐
streamingAssetsPath
jar:file:///data/app/com.mi.path-1.apk!/assets
temporaryCachePath
/data/data/com.mi.path/cache
我的包名是com.mi.path,可以看出android平台的路径和包名的关系,其实persistentDataPath和temporaryCachePath对应的路径就是sd卡或手机存储的Android/data/com.mi.path/files和Android/data/com.mi.path/cache路径
3.Iphone:
/var/mobile/Containers/Data/Application/FFEEF1E0-E15E-4BC0-9E8F-A0/Documents
/var/mobile/Containers/Bundle/Application/AFE239B4-2FE5-48B5-8A31-FC23FEDA0189/ad.app/Data&
persistentDataPath
/var/mobile/Containers/Data/Application/FFEEF1E0-E15E-4BC0-9E8F-A0/Documents
读写,强推荐
streamingAssetsPath
/var/mobile/Containers/Bundle/Application/AFE239B4-2FE5-48B5-8A31-FC23FEDA0189/ad.app/Data/Raw
temporaryCachePath
/var/mobile/Containers/Data/Application/FFEEF1E0-E15E-4BC0-9E8F-A0/Library/Caches
虽然temporaryCachePath目录下也能读写,但是建议只用于缓存临时文件用,因为在磁盘空间不足的情况下,ios会优先删除此处文件
官方描述:
StreamingAssets在各个平台上的文本支持读取方式
string path = System.bine(Application.streamingAssetsPath,&version.txt&);
1::System.IO.File.ReadAllText
2:path = &file://&+或者&path
= &file:/&+path;或者&path = &file:\\&+path或者&path
= &file:\\\\&+在win7上都可以&在mac上path
= &file:/&+path不可以外,别的都可以
www = new WWW (path);
www = new WWW (path);
1:System.IO.File.ReadAllText
= &file://&+System.IO.File.ReadAllText (path);
还有一点就是在读取streamingAssets目录下的文本文件时android平台必须要用www来读取哦,因为android平台是被压缩在apk中,所以不能直接用c#去读,ios可以直接用System.IO.File.ReadAllText(filePath)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:9298次
排名:千里之外
原创:10篇
(1)(5)(1)(3)&关于Unity3D在各平台上的路径问题,网上有好多的资料,如下是比较好的参考资料:
& 这里我不详细解释和路径的用法,只把各个路径对应的位置和访问方式总结一下。
1、Resources路径
& Resources文件夹是Unity里自动识别的一种文件夹,可在Unity编辑器的Project窗口里创建,并将资源放置在里面。Resources文件夹下的资源不管是否有用,全部会打包进.apk或者.ipa,并且打包时会将里面的资源压缩处理。加载方法是Resources.Load&T&(文件名),需要注意:文件名不包括扩展名,打包后不能更改Resources下的资源内容,但是从Resources文件夹中加载出来的资源可以更改。
<span style="color: #、Application.dataPath路径
& 这个属性返回的是程序的数据文件所在文件夹的路径,例如在Editor中就是项目的Assets文件夹的路径,通过这个路径可以访问项目中任何文件夹中的资源,但是在移动端它是完全没用。
3、Application.streamingAssetsPath路径
& 这个属性用于返回流数据的缓存目录,返回路径为相对路径,适合设置一些外部数据文件的路径。在Unity工程的Assets目录下起一个名为“StreamingAssets”的文件夹即可,然后用Application.streamingAssetsPath访问,这个文件夹中的资源在打包时会原封不动的打包进去,不会压缩,一般放置一些资源数据。在PC/MAC中可实现对文件的“增删改查”等操作,但在移动端是一个只读路径。
4、Application.persistentDataPath路径(推荐使用)
& 此属性返回一个持久化数据存储目录的路径,可以在此路径下存储一些持久化的数据文件。这个路径可读、可写,但是只能在程序运行时才能读写操作,不能提前将数据放入这个路径。在IOS上是应用程序的沙盒,可以被iCloud自动备份,可以通过同步推送一类的助手直接取出文件;在Android上的位置是根据Project Setting里设置的Write Access路径,可以设置是程序沙盒还是sdcard,注意:如果在Android设置保存在沙盒中,那么就必须root以后才能用电脑取出文件,因此建议写入sdcard里。一般情况下,建议将获得的文件保存在这个路径下,例如可以从StreamingAsset中读取的二进制文件或者从AssetBundle读取的文件写入PersistentDatapath。
5、Application.temporaryCachePath路径
& 此属性返回一个临时数据的缓存目录,跟Application.persistentDataPath类似,但是在IOS上不能被自动备份。
6、/sdcard/..路径
& 表示Android手机的SD卡根目录。
7、/storage/emulated/0/..路径(这个路径我查找了好久……)
& 表示Android手机的内置存储根目录。
& 以上各路径中的资源加载方式都可以用WWW类加载,但要注意各个平台路径需要加的访问名称,例如Android平台的路径前要加"jar:file://",其他平台使用"file://"。以下是各路径在各平台中的具体位置信息:
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
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
Windows Web Player
Application.dataPath :& file:///D:/MyGame/WebPlayer (即导包后保存的文件夹,html文件所在文件夹)
Application.streamingAssetsPath :&
Application.persistentDataPath :&
Application.temporaryCachePath :&
原文路径:http://blog.csdn.net/u/article/details/
阅读(...) 评论() &Unity3Dy各个平台动态读取外部文件解析 - zhutaorun的博客 - CSDN博客
Unity3Dy各个平台动态读取外部文件解析
AssetBundle
临近项目上线,开始整理项目相关的热更新,之前项目使用AssetBundle更新UI和表格,后来项目引入Ulua。但热更新这块没有去。给了三天把原来项中把原来的AssetBundle更新重新开了一遍,之前没看到服务器配置这块,现在了了解整个更新的流程。这周再看项目重lua和xml的更新,lua和xml通过bundle的方式来更新。对于遇到的内容重新去看。
一各个平台的资源路路径
Window或者Mac
Application.dataPath
返回程序的数据文件所在文件夹的路径
Application.streamingAssetsPath
返回流数据的缓存目录,适合设置一些外部数据文件的路径
Application.persistentData
返回一个持久化数据存储目录的路径,可以在次路径下存储一些持久化的数据文件
Application.temporaryCachePath
返回一个临时数据的缓存目录
Android平台
Application.dataPath
/data/app/xxx.xxx.xxx.apk
Application.streamingAssetsPath
jar:file:///data/app/xxx.xxx.xxx.apk/!/assets
Application.persistentData
/data/data/xxx.xxx.xxx/files
Application.temporaryCachePath
/data/data/xxx.xxx.xxx/cache
Application.dataPath
Application/XXXXX-xxx-xxxx-xxxx-xxxxxxx/xxx.app/Data
Application.streamingAssetsPath
Application/XXXXX-xxx-xxxx-xxxx-xxxxxxx/xxx.app/Data/Raw
Application.persistentData
Application/XXXXX-xxx-xxxx-xxxx-xxxxxxx/Documents
Application.temporaryCachePath
Application/XXXXX-xxx-xxxx-xxxx-xxxxxxx/Library/Caches
dataPath和streamingAssetsPath的路径位置一般是相对程序的安装目录位置,而persistentDataPath和temporaryCachePath的路径位置一般是相对所在系统的固定位置。那么现在明确了unity3d中各个地址在不同平台上的含义,下一个问题就来了,也就是我打包之后的资源要怎么和这些地址对应上呢?要知道在pc的editor里默认的资源文件存放的路径就是Assets啊,为何又会派生出那么多路径呢?
二Unity3d中资源的处理
Resources:
是作为一个Unity3D的保留文件夹出现的,也就是如果你新建的文件夹的名字叫Resources,那么里面的内容在打包时都会被无条件的打到发布包中。它的特点简单总结一下就是:
1.只读,即不能动态修改。所以想要动态更新的资源不要放在这里。
2.会将文件夹内的资源打包集成到.asset文件里面。因此建议可以放一些Prefab,因为Prefab在打包时会自动过滤掉不需要的资源,有利于减小资源包的大小。
3.主线程加载。
4.资源读取使用Resources.Load()。
StreamingAssets:
简而言之就是把prefab或者二进制文件封装成AssetBundle文件(也是一种二进制)。但是也有硬伤,就是在移动端无法更新脚本。
1.是Unity3D定义的一种二进制类型。
2.最好将prefab封装成AseetBundle,不过上面不是才说了在移动端无法更新脚本吗?那从Assetbundle中拿到的Prefab上挂的脚本是不是就无法运行了?也不一定,只要这个prefab上挂的是本地脚本,就可以。
3.使用WWW类来下载。
很多项目使用Ulua来解决热更新代码,android下可以通过热更新Dll的来热更新代码,苹果因为政策原因不允许,ulua成为适用苹果和android合适的选择
PersistentDataPath:
看上去它只是个路径呀,可为什么要把它从路径里面单独拿出来介绍呢?因为它的确蛮特殊的,这个路径下是可读写。而且在IOS上就是应用程序的沙盒,但是在Android可以是程序的沙盒,也可以是sdcard。并且在Android打包的时候,ProjectSetting页面有一个选项Write Access,可以设置它的路径是沙盒还是sdcard。下面同样简单的总结一下:
1.内容可读写,不过只能运行时才能写入或者读取。提前将数据存入这个路径是不可行的。
2.无内容限制.你可以从StreamingAssets中读取二进制文件或者从AssetBundle读取文件来写入PersistentDataPath中。
3.写下的文件,可以在电脑上查看。同样也可以清掉
但是在Android可以是程序的沙盒,也可以是sdcard。并且在Android打包的时候,ProjectSetting页面有一个选项Write Access,可以设置它的路径是(Internal)沙盒还是(External(SDCard))sdcard。
我的热门文章
即使是一小步也想与你分享}

我要回帖

更多关于 unity resources 路径 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信