示例#1
0
 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;
         }
     }
 }
示例#2
0
 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);
        }