面试Unity知识

1.resources 和 streamingAssets 文件夹的区别


 我在用了unity3d有一段时间后,在研究AssetBundle及播放音频的时候,总算是弄清了他们的区别。当时是想播放一段音频,于是我把资源放在StreamingAssets目录下,用WWW加载a.ogg,然后并没有得到我想要的结果。但是放在Resources目录下面,Resources.Load()却能播放。后来经过研究,终于知道了这么几个概念的意思,也就清楚了前面为什么不能播放。

要说明这个原因,首先说一下AssetBundle。很多人应该知道这是unity3d里面用来打包资源的,支持的格式有限,如文理、音频、二进制、文本等。像一些.cs文件、.mp4文件是没法打包的。Resources目录下的资源在打包之后,也会生成AssetBundle,只是Resources下的资源会被系统自动处理。

那AssetBundle到底是什么呢?其实可以把它简单看成是一个资源集合,必须用WWW类来进行读取,而Resources可以看成是一个特殊的WWW,只能对于Resources目录的资源。而WWW读取的内容也必须是AssetBundle,所以一个单独的ogg文件无法用WWW读取,必须先打包成AssetBundle,才能用WWW读取。

    StreamingAssets又是什么呢?这是个Raw目录,里面的内容不会加密、编码。比如png、ogg、AssetBundle文件,原来什么样,打包就是什么样。要使用这些文件的话,必须用对应的类来访问,如AssetBundle用WWW类,mp4用播放器插件加载(包括解析),用WWW加载mp4是不行的,因为识别不出来。

2.unity中的特殊文件夹


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容