Esempio n. 1
0
        private void CheckLoad()
        {
            if (IsLoading)
            {
                return;
            }

            if (m_LoadingInfos.Count == 0)
            {
                return;
            }
            IsLoading = true;
            ILoadInfo info = m_LoadingInfos.First.Value;

            if (info is LoadAssetBundleInfo)
            {
                LoadAssetBundleInfo loadAssetBundleInfo = (LoadAssetBundleInfo)info;
                m_Loader.LoadAssetBundleBytesAsync(loadAssetBundleInfo.AssetBundlePath, loadAssetBundleInfo.Mode);
            }
            else if (info is LoadAssetInfo)
            {
                LoadAssetInfo loadAssetInfo = (LoadAssetInfo)info;
                if (loadAssetInfo.IsAssetBundle)
                {
                    if (m_Holder.HasAssetBundle(loadAssetInfo.AssetPath))
                    {
                        m_Loader.LoadAssetFromAssetBundleAsync(m_Holder.GetAssetBundle(loadAssetInfo.AssetPath), loadAssetInfo.AssetName, loadAssetInfo.Mode);
                    }
                    else
                    {
                        //加载assetbundle失败
                        OnResourceLoaderLoadAssetComplete(new LoadAssetCompleteEventArgs(loadAssetInfo.AssetName, null, string.Format("asset bundle '{0}' not exists", loadAssetInfo.AssetPath), loadAssetInfo.UserData));
                    }
                }
                else
                {
                    m_Loader.LoadAssetAsync(loadAssetInfo.AssetPath, loadAssetInfo.Mode);
                }
            }
        }