internal override void Update() { if (Manager.CheckAndLoadBundles(m_AssetBundleCache, m_Priority)) { EStatus status = m_AssetBundleCache.Status; if (status != EStatus.Ready) { if (status == EStatus.Error) { Debug.LogError("Error load AssetBundle: " + m_AssetBundleCache.Data.Name); IsDone = true; Progress = 1f; Status = ERequestStatus.Error; ErrorText = m_AssetBundleCache.ErrorText; } } else { AssetBundle = m_AssetBundleCache.AssetBundleObject; IsDone = true; Progress = 1f; Status = ERequestStatus.Done; } if (m_Callback != null) { try { m_Callback(this); } catch (Exception exception) { Debug.LogException(exception); } m_Callback = null; } } }
internal AssetBundleRequest(AssetBundleManager manager, Int32 priority, AssetBundleCache assetBundleCache, AssetBundleRequestCallback callback) : base(manager) { m_Priority = priority; m_AssetBundleCache = assetBundleCache; m_Callback = callback; }
public AssetBundleRequest RequestAssetBundle(String bundleName, Int32 priority, AssetBundleRequestCallback callback, Object userToken) { if (String.IsNullOrEmpty(bundleName)) { throw new ArgumentException("value is null or empty", "bundleName"); } if (m_Database == null || m_AssetBundles == null) { throw new InvalidOperationException("Database not loaded!"); } AssetBundleData assetBundleData = m_Database.FindBundleByBundleName(bundleName); AssetBundleCache assetBundleCache; if (assetBundleData != null && m_AssetBundles.TryGetValue(assetBundleData.Name, out assetBundleCache)) { AssetBundleRequest assetBundleRequest = new AssetBundleRequest(this, priority, assetBundleCache, callback); assetBundleRequest.Tag = userToken; m_RequestTasks.Add(assetBundleRequest); m_SortRequestFlag = true; m_CheckTaskFlag = true; return(assetBundleRequest); } return(null); }