UH1L3——AB包依赖
UH1L3——AB包依赖 本章代码关键字 12AssetBundleManifest //主包的依赖文件assetBundleManifest.GetAllDependencies() //传入包名,得到该包依赖的所有的包名 AB包依赖 当某个资源使用了另外一个 AB 包内的资源,则可以说该资源对那个AB包存在依赖 假设我们创建了一个红色材质球,让 modelAB 包中的 Cube 使用它,而不将这个材质球打包进 AB 包中 则下次进行 AB 包打包时,该材质球将被默认的打包到 modelAB 包内 而如果将这个红色材质球打入到其他 AB 包诸如 head 内,而只加载 model 包,在加载 Cube 将会导致 Cube 的材质丢失 因为 model 内并不存在 Cube 的材质 可见,一个资源身上用到了别的 AB 包中的资源 如果只加载这时自己的 AB 包,通过它创建对象,将会出现资源丢失的情况 这种时候需要把依赖包一起加载了才能正常 1234567//加载AB包AssetBundle assetBundle...
UH1L2——AB包资源加载
UH1L2——AB包资源加载 本章代码关键字 123456789101112AssetBundle.LoadFromFile() //指定AB包文件路径,加载AB包assetBundle.LoadAsset() //从AB包中加载文件,通过名字加载(不推荐)assetBundle.LoadAsset(, typeof()) //从AB包中加载文件,通过名字和类型加载(返回Object类型,需要as成对应的类型)assetBundle.LoadAsset<>() //从AB包中加载文件,通过名字和泛型加载(热更新无法使用)AssetBundle.LoadFromFileAsync() //异步加载AB包,返回AssetBundleCreateRequestAssetBundleCreateRequest ...
UH1L1——AB包资源打包
UH1L1——AB包资源打包 本章代码关键字 1BuildPipeline.BuildAssetBundles() // 调用此方法时,Unity会自动把所有设置了AssetBundle名字的资源打包为AssetBundle AB包资源打包工具选择 使用 Unity 编辑器开发的自定义打包工具 官方提供好的打包工具:AssetBundles-Browser-master 关于高版本Unity导入AssetBundles-Browser-master 对于高版本Unity中,AssetBundles-Browser 已经不能通过包管理器进行下载(发现包管理器中没有对应工具不用着急) 因为:高版本 Unity 用 Addressables 功能封装了AB包功能 你仍然可以在资料区下载 AssetBundles-Browser-master 包文件导入你的工程中 或者从 github 上去获取该脚本:Releases · Unity-Technologies/AssetBundles-Browser...
U4S4——可寻址资源管理系统 Addressables
U4S4——可寻址资源管理系统 Addressables 前置知识 委托与事件(必备) AssetBundle(必备) Resources同步异步加载 ScriptableObject 协同程序基本原理 Addressables Addressables 翻译过来是可寻址的意思,它是可寻址资源管理系统 是Unity从2018.2版本开始,建议用于替代AssetBundle的高阶资源管理系统,在之后的Unity的新版本中,AssetBundle 将渐渐被淘汰 但是,AssetBundle 对于大家来说,还是必备的知识点,因为目前市面上还有很多的项目依旧在使用较老版本的Unity进行开发或者迭代, 所以 AssetBundle 还是一种主流传统的资源管理方式 Addressables 和 AssetBundle 的主要作用是一样的: 管理资源 热更新 减小包的体积 本系列学习内容 导入Addressables 资源加载基础 寻址资源设置 指定资源加载 Label标签的作用 动态加载单个资源 动态加载多个资源 配置相关 Profile...
UH1——AssetBundle
UH1——AssetBundle AssetBundle 特定于平台的资产压缩包,类似于压缩文件,资产包括:模型、贴图、预设体、音效、材质球等等 AssetBundle 是热更新和 Addressable 的基础,我们必须掌握它 本系列学习内容 AB包资源打包 AB包资源加载 AB包依赖 AB包资源管理器 AssetBundle的作用 相对 Resources 下的资源,AB包更好管理资源 AssetBundle 相对 Resources 文件还有两大优势: 减少包体大小 可压缩资源 减少初始包大小 可进行热更新 资源热更新 脚本热更新
ZMUIL6——高性能系统
ZMUIL6——高性能系统 高性能系统要做的工作 高性能系统是为了解决UI性能问题,增加游戏的流畅度而设计的一系列性能解决方案。 主要针对渲染、重绘、顶点、UI组件、等多个方面进行性能的优化处理。 他的功能有以下几点: 一键优化合批。 自动根据图集图片和相邻组件的特征进行重新排序。 避免使用SetActive引起的UI重绘和GC垃圾。 用CanvasGroup和Scale进行代替。 使用UI对象池。 避免频繁的克隆物体导致的卡顿和GC。(在之前的UIModule里已经实现了,隐藏窗口不会直接销毁窗口对象,可复用) 智能化禁用不必要的组件属性。 从而来避免一些不必要的性能开销。 界面预加载。 针对复杂一些的界面我们可以使用预加载进行提前加载物体,来确保在真正使用界面时,能够流畅度加载出界面。 **高性能文字描边。**Unity描边组件是拷贝4份相同的文本顶点数占用量巨大。 一个字母的Text加上Untiy的描边一共占用30个顶点。 而我们的Text同样是一个字母加上描边能做到只占用6个顶点。性能是Unity组件的5倍。 (这课没讲,不用记辣) 组件自动序列化。...
ZMUIL5——堆栈系统
...
ZMUIL4——自动化系统
ZMUIL4——自动化系统 自动化系统要做的工作 在拼接完UI面板后,自动化系统可以根据特定的解析规则解析UI面板,得到各个需要管理的UI控件的控件类型和控件名 根据以上的解析结果自动生成对应的组件查找脚本/组件数据脚本以及Window逻辑类脚本 自动化系统会自动完成繁杂的关联组件,监听函数声明与添加,重写生命周期函数等工作,让我们可重心放在UI控件交互逻辑的编写上 组件查找脚本/组件数据脚本负责获取并管理UI控件,供Window逻辑类调用UI控件,初始化方法里将Window逻辑类里监听函数添加到控件中 Window逻辑类是我们编写界面的交互的脚本,我们直接在该脚本内生成的各个函数内编写逻辑即可,对外接口函数在API Function代码块内编写 自动化系统会自动让Window逻辑类继承WindowBase,重写各个生命周期函数,预留对外的API...
ZMUIL3——层级系统
...