江枫

创建AB

   AB的创建流程大致分为三步:

  • 生成资源路径
  • 获取资源之间的引用关系
  • 整理、合并共同的引用关系
  • 整理最终的AB包关系,把需要打包在一起的资源放在一起
  • 生成AB包

   1.生成资源路径

   2.获取资源间的引用关系

   3.整理AB

   生成映射信息:

   4. 整理最终的AB包关系

   还记得吗,刚才我们整理资源引用关系的时候使用了一个dictionary进行存储,其中key是资源的路径,value是引用到这个资源的所有路径。
   我们在整理AB关联关系获取AB名的时候,需要注意几个关键信息:

  • 一些资源可以按类型打在一个AB包内,比如Lua、Shader、Prefatch(在Patch前使用,这部分资源也可以被Patch,但要重启才能生效)。
  • 如果一个AB被很多很多其他AB索引(value值的list.count>1),那么这个AB就要单独打一个AB,防止资源被同时打到很多个AB中。
  • 如果一个AB只被一个AB引用,那么这个AB也许可以跟引用他的AB打在同一个AB包内。但是这时我们要考虑这个AB是否有可能是被循环引用。

   此外,Fmod等音频信息也不应该依赖到对应的AB包,我们的AB打包时都以全路径作为AB名进行打包,这样做是为了方便加载,但Fmod的语音也不应该带全路径打包,Fmod在加载时多使用一层目录/音频名称格式进行加载。所以我们还需要额外对Fmod的AB名单独处理一下。

   5.开始打包

   6.AB包加固
   这其实是一个可选项,为了游戏内的反作弊,我们可以接入一些SDK来对抗作弊行为。AB加固也是为了对应的SDK可以在游戏内正常运作。
   AB包在加固前后我们使用时其实没有明显的感知,加固只要调用一下SDK对应的指令就可以了~这里就不具体举例了。

文章大纲