IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    UE中利用反射为资产建立属性缓存

    查利鹏发表于 2023-10-25 15:27:37
    love 0

    在前一篇文章UE中资源自修正的设计与实现方案中,我介绍了利用ResScannerUE的资产检查进行过滤,然后自动化处理的实现方案。

    在通常情况下,如果想要检查资源内的某个属性,就需要把资产加载进来,获取对象:

    但是,如果想要批量地检查资源的属性,用这种形式挨个加载资源的耗时很久,尤其是在没有DDC的情况下,加载资源就会触发DDC缓存的构建,这部分耗时很久,对于机器性能占比也较高。

    而且随着资产规模的扩大,如果想要完整扫描一遍工程里的所有资源,耗时就会异常夸张。所以,我设想能否实现一种无需加载资源,但能够获取资源内属性的方法。

    经过研究发现,通过一种取巧的方法做到这一点,利用了反射、资产序列化、以及AssetRegistry的特性组合起来。并且是非侵入式的,无需修改任何现有资源类型的代码。

    本篇文章会介绍其实现原理,以及对引擎中相关逻辑的分析,并介绍该机制在工程中的实际应用。



沪ICP备19023445号-2号
友情链接