Example #1
0
        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;
                }
            }
        }
Example #3
0
 /// <summary>
 /// 加载主资源对象
 /// 注意:在加载主资源对象的时候,需要传入资源类型,因为依赖Bundle被加载的时候,AssetType为空。
 /// </summary>
 public abstract void LoadMainAsset(EAssetType mainAssetType, OnAssetObjectLoad callback);