public override void LoadMainAsset(EAssetType mainAssetType, OnAssetObjectLoad callback) { // Check error if (LoadState != EAssetFileLoadState.LoadAssetFileOK) { LogSystem.Log(ELogType.Error, $"Can not load asset object, {nameof(AssetResourceLoader)} is not ok : {LoadPath}"); callback?.Invoke(null, false); return; } callback?.Invoke(_mainAsset, LoadState == EAssetFileLoadState.LoadAssetFileOK); }
public override void LoadMainAsset(EAssetType assetType, OnAssetObjectLoad callback) { // Check error if (LoadState != EAssetFileLoadState.LoadAssetFileOK) { LogSystem.Log(ELogType.Error, $"Can not load asset object, {nameof(AssetBundleLoader)} is not ok : {LoadPath}"); callback?.Invoke(null, false); return; } // Check secne // 注意:场景文件在获取资源对象的时候直接返回成功 if (assetType == EAssetType.Scene) { callback?.Invoke(null, true); return; } // 如果加载器不存在 if (_mainAssetLoader == null) { string assetName = AssetSystem.GetCacheFileName(LoadPath); _mainAssetLoader = new AssetObjectLoader(_cacheBundle, assetName, assetType); _mainAssetLoader.LoadCallback = callback; _mainAssetLoader.Update(); //立刻轮询 } else { if (_mainAssetLoader.IsDone()) { callback?.Invoke(_mainAssetLoader.AssetObject, _mainAssetLoader.LoadState == EAssetObjectLoadState.LoadAssetObjectOK); } else { _mainAssetLoader.LoadCallback += callback; } } }
/// <summary> /// 加载主资源对象 /// 注意:在加载主资源对象的时候,需要传入资源类型,因为依赖Bundle被加载的时候,AssetType为空。 /// </summary> public abstract void LoadMainAsset(EAssetType mainAssetType, OnAssetObjectLoad callback);