protected override void AddAssetSystems() { if (AssetBundleConfig.IsSimulator()) { foreach (var systype in AssetBundleConfig.SimulatorLoadSystems) { IAssetBundleSystem sys = System.Activator.CreateInstance(systype) as IAssetBundleSystem; if (sys != null) { Systems.Add(sys); } } } else { foreach (var systype in AssetBundleConfig.LoadSystems) { IAssetBundleSystem sys = System.Activator.CreateInstance(systype) as IAssetBundleSystem; if (sys != null) { Systems.Add(sys); } } } }
public bool IsDone(ref AssetBundleContext context, out GameAssetBundle assetBundle) { if (context.Cache.GetAssetBundle(AssetBundleName, out assetBundle)) { //异步请求还未完成 if (assetBundle.LoadRequest != null || assetBundle.LoadAssetRequest != null || assetBundle.SceneRequest != null || assetBundle.UnloadSceneRequest != null) { return(false); } if (AssetBundleConfig.IsSimulator()) { return(true); } ///被预加载pin住的 if (IsPreLoad() && PinTime > 0) { if (FinishTime > CreateTime) { return(Time.realtimeSinceStartup - FinishTime > PinTime); } return(false); } //正在下载的 if (AssetBundleFunction.InDowloading(ref context, ref this)) { return(false); } //加载异常 if (AssetBundleConfig.SafeMode && assetBundle.IsException()) { return(true); } else if (assetBundle.AssetStatus.HasEnum(AssetBundleStatus.InMemory)) //加载正常 { int finish; int total; return(IsSubAllDone(ref context, out finish, out total)); } //else if(assetBundle.AssetStatus == AssetBundleStatus.None)//啥事也没干的task //{ // return true; //} } else { return(true); } return(false); }