大学毕业头一年就开始着手做资源管理,不过一开始都是学习使用assetbundle,怎样打资源包,资源包里面资源的一些要求,怎样简单的处理依赖关系,让资源包尽量小一点,打资源包简单,就是把要添加的文件添加进来,然后打包就行了。
一开始我们采用的打资源包的选项是这么设置的

        BuildAssetBundleOptions options = BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.DisableWriteTypeTree | BuildAssetBundleOptions.UncompressedAssetBundle;

这样打的资源包是没有经过压缩的,所以体积会非常的大,然后所有的依赖关系都包括在资源包里面,在使用的时候直接加载,用AssetBundle.CreateFromFile("路径") 这种方法就可以直接同步的创建资源包,速度很快,资源包大的解决方式是参考了雨松大神的Unity3D研究院之Assetbundle的实战(六十三) 来进行处理的,文章最后面写了步骤,先打资源包,然后LZMA压缩并将资源包上传到你的服务器上面供下载,下载到本地之后,在app里面对资源进行解压,游戏里面直接createformfile就可以使用,解压的过程可能会慢一些,不同的机器性能不同,这样主要是为了减少用户下载资源等待时间,才采取的压缩,最终解压完成之后,资源包依然很大,所以在IOS那头,你的游戏安装包会很大。但是这种方式内存占用量小,加载创建速度快,同步创建,我觉得这种方式不错,奈何显示的包体太大。
再后来我们采用的打包选项是这么设置的
BuildAssetBundleOptions options = BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.DisableWriteTypeTree;
只是将资源包压缩的那个选项给去掉了,资源包果然缩小了好多,相比一开始,至少6倍左右的被缩小,因为这个方法,在一开始打资源报的时候,unity就自动给你压缩了,省的你再处理一遍,通过这种方式打出的资源包,体积小,可以采用
byte[] stream = Global.GetAssetbundleFileInfoByName(_filepath);
bundle = AssetBundle.CreateFromMemoryImmediate(stream);

这种方式来进行加载,但是由于安卓平台jar包的限制,就得采用www的方法,从包体里面取出资源包,然后进行创建,这样就会存在一个异步的过程,然后再调用这种方法,创建资源包。这种方式较上一种在内存占用,进游戏速度上都明显落后,内存占用变高很多,速度也稍微慢了一点,但是唯一的好处是,资源包体积很小,这对于用unity开发的确不错,但是我并不喜欢啊。上面是我先把资源包里面的数据都读出来了,也可以不那样,采用
AssetBundleCreateRequest acr = AssetBundle.CreateFromMemory(stream);
yield return acr;
bundle = acr.assetBundle;

这种方式进行创建,效果是一样的。
我们项目里面主要用的是ngui,所以用到了很多Label组件,给上面设置了字体,然后打包的时候,字体关系的依赖非常的多,所以就采用个一个脚本来给Label的Font进行设置,最后再打包的时候,所有的Label组件上面的字体资源都不进行设置,这样打包资源就又小了些,挺好的。

using UnityEngine;
using System.Collections;
public class UILabelFontSet : MonoBehaviour {bool isUsedFont = false;public enum UILabelFont{None,Msyh,Fzzdhjw,}AssetBundle ab = null;public UILabelFont mEffectStyle = UILabelFont.None;void Update () {if (!isUsedFont ){if (mEffectStyle == UILabelFont.None){return;}if (mEffectStyle == UILabelFont.Msyh){Font _mFont = null;UILabel label = this.gameObject.GetComponent<UILabel>();_mFont = (Font)ModulManager.NewOpenFount("ResourcesEx/Font/msyh.ttf", "Font");label.trueTypeFont = _mFont;isUsedFont = true;}else if (mEffectStyle == UILabelFont.Fzzdhjw){UILabel label = this.gameObject.GetComponent<UILabel>();Font _mFont =null;_mFont = (Font)ModulManager.NewOpenFount("ResourcesEx/Font/FZZDHJW.TTF", "Font");label.trueTypeFont = _mFont;isUsedFont = true;}}}
}

这样在程序运行的时候,先加载资源包,然后就可以根据你的设置用不同的字体喽,哈哈。
在使用了资源报之后,都要对现在的所有用的资源,像图集,脚本,预设进行动态加载,动态关联部分,这样才好,哈哈

又来了个新同事,又得给他讲lua,哈哈

Unity3d资源包的使用心得相关推荐

  1. 独立游戏开发必备!8个效果不错的Unity3D 免费模型资源包

    1.Unity3D RTS策略游戏 方块人风格资源包 KUBIKOS – RPG – RTS 20 Animated Cube Mini Units v1.0 http://www.idoubi.ne ...

  2. Unity3D官方资源包的下载以及从Asset Store下载后存在的位置查找

    自Unity5开始后自带的资源包是不提供的了,需要自行下载. //================================== 下载地址标准资源包 //==================== ...

  3. Unity3D 解决 “SpeedTree materials need to be regenerated.” 导入资源包时出现的错误

    我的Unity版本:2019.3.2f1 在导入标准资源包时出现了以下错误: 解决办法:去Unity的Asset Store下载标准资源包即可,其他地方下载的版本可能是不兼容. 我的标准资源包是一个群 ...

  4. Unity3d资源反编译. AssetBundle格式简析+简单应用+爬坑

    ===================  Unity3d资源反编译工具 DisUnity ================ 源码:https://github.com/ata4/disunity 需要 ...

  5. 《.NET 4.0面向对象编程漫谈》前言及配套资源包发布

    <.NET 4.0面向对象编程漫谈>前言及配套资源包发布 注: 今天拿到了出版社快递送来的<.NET 4.0面向对象编程漫谈>(基础篇和应用篇)的24小时样书,相信读者很快就能 ...

  6. Unity3D资源加载与内存管理

    Unity3D资源加载与内存管理 Unity 3D中的资源加载 AssetBundle运行时加载: Unity3D占用内存太大怎么解决呢? 关于内存管理 举两个例子帮助理解 额外问题 Hog的评论引用 ...

  7. 王者荣耀s22服务器未响应是什么意思,王者荣耀s22资源包升级失败 s22解析包出现问题解决方法...

    王者荣耀s22资源包升级失败怎么解决?相信大家都知道王者荣耀S22破晓版本在今日14日正式推出,一时间大量玩家去更新游戏,不过有一小部分玩家出现了更新问题,那就是资源包升级错误,关于这个问题,官方也给 ...

  8. iOS架构-静态库.framework(引用第三方SDK、开源库、资源包)(9)

    前面介绍了 静态库.a依赖第三方静态库.a的制作 静态库.framework之依赖第三方库(Cocoapods进行管理) 今天课题: 静态库.framework(引用第三方SDK.framework. ...

  9. maven工程指定web资源包,创建jsp文件

    进入项目的project structure. 选择web. 在右侧增加web资源包路径

  10. 小米4硬改教程_小米手环3美化/修改资源包教程(含加入二维码教程)

    小米手环3美化/修改资源包教程(含加入二维码教程) 注意:本教程侧重于讲刷资源包res,不过多的进行刷固件的讲解(并且不建议刷固件,容易砖,一般修改res已经可以达到你预期的效果了). 1.2更新 温 ...

最新文章

  1. C++知识点12——构造函数初步
  2. 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制
  3. 【原创】backbone1.1.0源码解析之Events
  4. idea2020shezhi代码检查级别_优秀的模糊测试代码是如何炼成的?
  5. 逆波兰表达式[栈 C 语言 实现]
  6. 搭建本地ubuntu镜像服务器(arm版)
  7. Git 入门 ---- Git 与 SVN 区别
  8. 从研发角度谈存储技术的学习
  9. Django Form 详解
  10. win7仿win98电脑主题
  11. C语言超时错误,C语言题目运行得到超时错误
  12. Office 2010 文件验证
  13. vue实例练习和vue样式练习
  14. 苹果U盘格式化了怎么恢复
  15. thinkphp5拼接数组查询条件
  16. Arbitrary Style Transfer with Deep Feature Reshuffle
  17. 2021-01-06
  18. git 强行替换覆盖master分支
  19. delphi源码转换为C++ Builder源码
  20. 阅读报告Implementing arbitrary coined two-dimensional quantum walks via bulk optical interferometry

热门文章

  1. MySql之ALTER命令用法详细解读
  2. SOA面向服务架构详解
  3. 【笔记】Protues仿真STM32的实现过程
  4. 社区管理系统案列/APP/小程序/网站
  5. Android 杂七杂八记录
  6. 【语音识别】基于DTW算法实现0~9数字含Matlab源码
  7. mach3加工回差_mach3 中文说明书.pdf
  8. 马士兵oracle视频教程笔记
  9. 时序逻辑电路的设计与分析
  10. 数据结构课程设计——学生成绩查询与分析系统(简单详细版,含讲解)