galacean / engine-lottie

A WebGL runtime of lottie based on Galacean Engine
MIT License
13 stars 10 forks source link

Lottie 销毁逻辑 #92

Open cptbtptpbcptdtptp opened 1 year ago

cptbtptpbcptdtptp commented 1 year ago

类似 https://github.com/galacean/engine/pull/1831 这条 PR,开发者需要如何销毁 Lottie 的资源?

cptbtptpbcptdtptp commented 1 year ago

重构 glTF 引用计数的那个 PR 大致做了以下工作:

  1. 将 glTF 原本克隆根节点的操作作为类方法( instantiateSceneRoot )方便使用,并且保证原始节点不直接被生产环境使用
  2. 所有 glTF 解析得到的原始节点都加上模版标记(_isTemplate),这个标记会忽略引用计数,即场上只剩下原始节点时,引用的资产引用计数依旧是 0。
  3. 在场上有使用 gltf.instantiateSceneRoot 的实例或者其子节点的克隆时,非强制不能回收局部资源,保证模型正常显示
  4. 在场上没有使用 gltf.instantiateSceneRoot 的实例或者其子节点的克隆时,可以清理局部资源的引用
cptbtptpbcptdtptp commented 1 year ago

Lottie 的使用场景会简单一些,这块定下来我可以依照 @GuoLei1990 对复合型资产的设计进行实现。