【美年达的开发日记】龙骨操作 - 从bundle加载龙骨

第一步

assets文件夹下创建一个名bundle的文件夹 ,将资源放进文件夹下并且在creator内选择bundle文件夹在右侧属性检查器内将其配置为Bundle

加载bundle资源

function loadBundle(bundleName){
  return new Promise<cc.AssetManager.Bundle>(resolve=>{
    let bundleUrl = bundleName;
    let bundleOption:any={};
    cc.assetManager.loadBundle(bundleUrl,bundleOption,(err,bundle:cc.AssetManager.Bundle)=>{
      if(err){
        console.error(`loadBundle error`,err);
        return;
      }
      resolve(bundle);
    })
  })
}

从bundle加载龙骨资源

function loadDragonBones(dragonBonesName:string){
  let obj:any={};
  return new Promise<dragonBones.ArmatureDisplay>(async resolve=>{
    let bundle = await loadBundle(dragonBonesName)

    bundle.load(`${dragonBonesName}_ske`,dragonBones.DragonBonesAsset,(err,asset:dragonBones.DragonBonesAsset)=>{
      if(err){
        console.error(`loadDragonBones ske error`,err);
        return;
      }
      obj.dragonAsset=asset;
      bundle.load(`${dragonBonesName}_tex`,dragonBones.DragonBonesAtlasAsset,(err,atlasasset:dragonBones.DragonBonesAtlasAsset)=>{
        if(err){
          console.error(`loadDragonBones tex error`,err);
          return;
        }
        obj.dragonAtlasAsset = atlasasset;
        obj.armatureName='idle';//指定默认动作名称
        resolve(obj);
      })
    })
    
  })
}