// 加载mesh动画文件 //Modify by Aoicocoon 2017/12/06 //修改打包士兵数据+动画文件 public override void LoadSoldierAnim(string meshName, string animName, bool IsCache, AssetLoadHook pfun) { if (null == pfun) { return; } string folder = ResourcesPath.GetRelativePath(ResourcesType.ActorSoldierMesh, ResourcesPathMode.AssetBundle); string key = GetKey(folder, meshName + "/" + animName.ToLower()); string path = key + ConstantData.ABEXT; Object obj = FindAssetObj(key); if (null != obj) { pfun.Invoke(obj); } else { ABLoad.LoadAB(path, true, (ab) => { LoadQueue.AddLoadTask(path, animName, typeof(Texture2D), IsCache, IsCache, false, pfun); }); } }
// 加载asset接口 private void LoadObj(string ResType, string ABName, string ObjName, Type type, bool IsCacheAsset, bool IsCacheAB, bool IsFreeUnUseABRes, bool async, AssetLoadHook pfun) { string RelativePath = ABLoad.GetRelativePath(ResType, ABName); string key = GetKey(RelativePath, ObjName); UnityEngine.Object obj = FindAssetObj(key); if (obj != null) { if (pfun != null) { pfun(obj); } } else { if (async == false) { ABLoad.LoadAB(RelativePath, IsCacheAB, (ab) => { Object g = LoadObjByAb(ab, ObjName, type, IsCacheAB, IsFreeUnUseABRes); LoadAssetCallBack(g, key, IsCacheAsset, pfun); }); } else { // 异步加载队列 LoadQueue.AddLoadTask(RelativePath, ObjName, type, IsCacheAsset, IsCacheAB, IsFreeUnUseABRes, pfun); } } }