Cesium-源码修改-gltf加载后Json数据丢失

一、需求

        用户自定义修改过的gltf或者3dtiles文件存在自定义数据写在了gltf的Json中,但是由于Cesium的封装,这部分数据在模型加载之后直接给清理掉了,使得模型加载后要访问Json中数据来做处理将不可能,因此需要在清理之前将数据重新抓取公布出来。

二、怎么做

        1.简单粗暴,将标识需要清理的变量设置为false即可不清理:

releaseGltfJson = false;

如果这里设置为false,那么对应的这个位置的清理将不进行:

async function loadResources5(loader, frameState) {
    ...
    if (defined_default(loader._gltfJsonLoader) && loader._releaseGltfJson) {
      ResourceCache_default.unload(loader._gltfJsonLoader);
      loader._gltfJsonLoader = void 0;
    }
    return promise;
  }

那么之后就可以从这个gltfJsonLoader中继续获取我们需要的数据;

        2.在释放之前将信息取出来单独存储

具体存储在哪里就看大家自己安排了。

你可能感兴趣的:(Cesium,Cesiun,gltf)