AB包

AB包创建,资源打包
AB包加载,加载使用
AB包依赖关系
AB打包和使用的设计
AB打包工具的编写
AB资源加载和管理

AB打包步骤:

  1. 打标记

  2. 后缀名是assetbundle (场景打包后缀是U3d)

  3. 打包的脚本必须放到Editor文件夹下,不需要继承MonoBehavior

  4. 什么是AssetBundle?
    (1) 在unity编辑器里面一些文件。可以运行环境中动态加载。
    (2) 包括:
    ① Prefab
    ② 材质
    ③ 贴图
    ④ 场景
    (3) 就是把一些资源文件和场景文件以某种加密方式,(LZMA算法),保存的一个文件。
    (4) 可以保存在本地,在客户端运行的时候就可以加载AssetBundle(也可以保存到远程服务器)
    (5) 涉及到更新
    ① 打包AssetBundle
    ② 上传服务器
    ③ 客户端运行的时候,检查一下版本,如果不一样

  1. 每个客户端MD5和服务器进行比较,哪个不一样就去服务器下载最新的包。
  2. SVN:每一个版本都有一个版本号,检查一下版本号,如果不一样就去服务器。下载最新的包,替换本地的包。
    (6) Http协议:发送一次就请求一次
    (7) Socket 时时通讯
    2.Resources的区别
    (1) 其实差别不大,Resources把目录下的东西全都自己打包。
    (2) Resources.Load 加载资源
    (3) 游戏一旦发布,里面的内容都包裹在项目里面,就不能修改不能更新。
    3.AssetBundle的依赖关系:
    (1) 有一个模型,上面有材质,就可以说模型依赖材质
    (2) 在加载资源的时候,要先加载依赖关系,再加载自身。
    (3) 在卸载资源的时候,先卸载自身,再卸载依赖关系。

mainfest 文件介绍:crc 为校验码 通过这个码检查是否完整Assets 为包里包含了哪些资源文件Dependencies 为包的依赖AssetBundleMainfest anm = new AssetBundleMainfest();anm.GetAllDependencies();anm.GetAllAssetBundles();在加载资源的时候,要先加载依赖关系,再加载自身。在卸载资源的时候,先卸载自身,然后再看自身所依赖的AssetBundle还有没有以来的AssetBundle,如果没有就不能卸载,有就可以卸载。

管理所有场景的类 -> 所有包的管理 场景内 -> 包所依赖关系 -> 包的加载 WWW -> 包里的资源加载 AssetBundle.Load

上一篇:AssetBundle打包和加载之依赖加载(三)


下一篇:(七十一)c#Winform自定义控件-折线图