动态加载

加载方法

  1. 反射
  2. 将脚本挂载到资源
    • 原理: ab
    • 可挂载的资源: prefab、 scene、 ScriptableObject
    • 注意:实例化资源前必须先加载dll

使用泛型

完整支持泛型特性

使用热更新中定义的泛型类或函数

直接使用

使用AOT中定义的泛型类或函数

  1. AOT中以有代码实例化过某个泛型类或函数,则热更新可以直接使用
  2. 否则,则有三种解决办法:
    1. 在AOT中添加相应的实例化代码
      • 缺点:AOT代码改变需要重新build工程;泛型参数可能是热更新类型。
    2. 补充元数据技术:
      • 流程:
        • 获得补充元数据dll
        • 执行补充元数据:加载热更逻辑前,先加载需要用到的dll
        • 优化补充元数据dll大小
      • 缺点:由于额外下载元数据dll,增大了包体,多占用了内存。
    3. full generic sharing 完全泛型共享技术, 需购买商业版本