位置: 编程技术 - 正文
推荐整理分享【unity资源管理】 打包(unity资源管理机制),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity资源包怎么用,unity项目中的资源,unity自带的资源包在哪找,unity资源面板,unity项目中的资源,unity项目中的资源,unity资源库,unity资源库,内容如对您有帮助,希望把文章链接给更多的朋友!
unity资源主要分两种,编辑器下看的perfab,运行时动态加载的Assetbundle。了解unity资源管理,第一步就从打包开始。 打包的对象也分两类,一种是纯资源,不会引用其它资源,一类是窗口和模型那种,需要引用其它资源。纯资源就原样打包就好了,有依赖的需要些特殊处理。
1.准备工作:因为需要设置一些选项,所以创建可以拖动的窗口,继承EditorWindow,类名和脚本名必须一致。
打包按钮及选项,通过OnGUI绘制在界面上。
2.主要打包接口:BuildPipeline类,提供实际打包的函数。AssetDatabase类可以访问项目中的资源,提供了查找、加载、创建、删除和修改资源的方法。Selection类,可以获取选中的对象信息。3.打包流程
1.获取打包对象,一般是选中或者查找某一类型的,选中用Selection.GetFiltered。
2.设置原对象路径和打包路径,这两个参数传给BuildPipeline.BuildAssetBundle函数,再加上一些选项,就可以打包资源了。
3.调用BuildPipeline.BuildAssetBundle,完成打包。
4.依赖打包:直接用BuildAssetBundle打包有个问题,资源会变的很大,这种打包会把所有用到的资源打在一起,相当于把各种图集、材质等都放到这一个对象里,很浪费内存。
原理:将图集变成一个引用,记录在AssetBundle中,实际加载时,需要先加载依赖资源,再加载实际对象。unity提供了两个接口,push和pop,
注意:依赖打包的一个问题是如何设置需要哪些依赖,可以通过遍历每个节点,找到需要打包的资源。另外一个需要注意的是要记录通过依赖打包剔除的资源,本来以为可以通过AssetDatabase.GetDependencies这个获取,实际看了一下,这个不管是不是使用了依赖,内容都是一样的。
优点:打包资源小,减少内存占用。
缺点:打包时需要打包依赖的资源,打包资源时也需要打包依赖它的对象,很是麻烦,打包时需要记录很多信息。如果打包字体,几乎所有界面都需要重新打包,好在字体这些基本上做好了就不用改。
5.一种适合NGUI界面的打包方案:很多类型可以在运行时赋,动态改变,比如uisprite,只要找到图集和对应的图片名字,就可以使用,所以打包时可以选择将控件设为空,并记录一个资源的完整路径,加载时通过路径加载图集等资源,然后直接赋。也就是打包后的资源只有节点结构和节点对应的资源路径,具体赋在运行时动态设置。这种打包出的资源比去掉依赖的要大一点,优点是改变资源只需要打包自身,不会像依赖的那样需要打包所有相关的。
以下是完整代码,主要针对NGUI的依赖打包,其他类型思路都差不多。
【猫猫的Unity Shader之旅】之使用顶点的世界坐标 在顶点运算阶段,我们可以得到每个顶点的位置,利用这些位置可以实现非常不错的效果访问顶点坐标为了使用顶点坐标,我们需要使用顶点函数,将
Unity中位图字体Font的制作 真心苦啊,网上找了好久都没有什么现成的资料,最终还是得靠自己摸索,说话说己所不欲,勿施于人,什么事还得靠自己啊喀巴爹终于,励精图治,
一起来学u3d之圣典.1 一起来学u3d之圣典.1废话不多说,一针见血,go!一起来看API其中不懂的大家互相帮助哈英文部分版权属©Unity公司所有,中文部分©Unity圣典版权所有。
标签: unity资源管理机制
本文链接地址:https://www.jiuchutong.com/biancheng/377210.html 转载请保留说明!友情链接: 武汉网站建设