示例#1
0
        private IEnumerator _loadAsset(LoadRequireData _require_data)
        {
            AssetBundle bundle = _require_data.Resource.GetBundle();

            if (bundle == null)
            {
                Debug.LogErrorFormat("Bundle: {0}为空 不能加载asset: {1}", _require_data.Resource.GetResConfig().BundleName, _require_data.AssetName);
                m_loading_asset.Remove(_require_data);
                yield break;
            }
            Debug.LogFormat("开始异步加载asset: {0}", _require_data.AssetName);
            AssetBundleRequest asset_load_request = bundle.LoadAssetAsync(_require_data.AssetName);

            yield return(asset_load_request);

            if (asset_load_request.asset == null)
            {
                Debug.LogErrorFormat("加载bundle: {0} 中的asset: {1} 失败", _require_data.Resource.GetResConfig().BundleName, _require_data.AssetName);
                m_loading_asset.Remove(_require_data);
                yield break;
            }
            Debug.LogFormat("asset: {0}异步加载完成", _require_data.AssetName);
            _require_data.Resource.OnAssetLoaded(_require_data.AssetName, asset_load_request.asset);
            m_loading_asset.Remove(_require_data);
        }
示例#2
0
 public void Update()
 {
     if (m_current_loading != null || m_pending_asset.Count == 0)
     {
         return;
     }
     m_current_loading = m_pending_asset.Dequeue();
     StartCoroutine(_loadAssetBundle(m_current_loading));
 }
示例#3
0
        private IEnumerator _loadAssetBundle(LoadRequireData _require_data)
        {
            AssetBundleRequest asset_load_request = _require_data.Resource.Assetbundle.LoadAssetAsync(_require_data.AssetName, _require_data.Type);

            yield return(asset_load_request);

            if (asset_load_request.asset == null)
            {
                Log.Error(eLogType.Resources, "从Assetbundle: [{0}]中加载Asset: [{1}]失败!", _require_data.Resource.ResouceInfo.Name, _require_data.AssetName);
                _require_data.Resource.OnAssetLoaded(null);
                yield break;
            }

            Log.Debug(eLogType.Resources, "成功从Assetbundle: [{0}]中加载Asset: [{1}]!", _require_data.Resource.ResouceInfo.Name, _require_data.AssetName);
            asset_load_request.asset.name = asset_load_request.asset.name.ToLower();
            _require_data.Resource.OnAssetLoaded(asset_load_request.asset);
            m_current_loading = null;
        }