Esempio n. 1
0
 internal SceneRequest(AssetBundleManager manager, Int32 priority, AssetBundleCache assetBundleCache, AssetKey assetKey, SceneRequestCallback callback) : base(manager)
 {
     m_Priority         = priority;
     m_AssetBundleCache = assetBundleCache;
     m_AssetKey         = assetKey;
     m_Callback         = callback;
 }
        internal Boolean CheckAndLoadBundles(AssetBundleCache bundle, Int32 priority)
        {
            Boolean flag = true;

            AssetBundleCache[] dependencies = bundle.Dependencies;
            if (dependencies != null)
            {
                foreach (AssetBundleCache assetBundleCache in dependencies)
                {
                    flag &= (assetBundleCache.Status >= EStatus.Ready);
                    if (assetBundleCache.Status == EStatus.None)
                    {
                        assetBundleCache.UpdateStatusLoad();
                        LoadAssetBundle(assetBundleCache, priority);
                    }
                }
            }
            if (flag)
            {
                flag = (bundle.Status >= EStatus.Ready);
                if (bundle.Status == EStatus.None)
                {
                    bundle.UpdateStatusLoad();
                    LoadAssetBundle(bundle, priority);
                }
            }
            return(flag);
        }
 private void InitDatabase()
 {
     if (m_Database != null)
     {
         UnloadManager(true);
         m_AssetBundles = new Dictionary <String, AssetBundleCache>(m_Database.AssetBundleCount, StringComparer.InvariantCultureIgnoreCase);
         foreach (AssetBundleData assetBundleData in m_Database)
         {
             AssetBundleCache value = new AssetBundleCache(assetBundleData);
             m_AssetBundles.Add(assetBundleData.Name, value);
         }
         foreach (AssetBundleCache assetBundleCache in m_AssetBundles.Values)
         {
             AssetBundleData[] bundleDependency = assetBundleCache.Data.BundleDependency;
             if (bundleDependency != null)
             {
                 for (Int32 i = 0; i < bundleDependency.Length; i++)
                 {
                     String name = bundleDependency[i].Name;
                     m_AssetBundles.TryGetValue(name, out assetBundleCache.Dependencies[i]);
                 }
             }
         }
     }
 }
 private void LoadAssetBundle(AssetBundleCache bundle, Int32 priority)
 {
     if (m_AssetBundleLoader == null)
     {
         Debug.LogError("Lost reference");
         return;
     }
     m_AssetBundleLoader.Load(bundle.Data.Path, priority, bundle.Data.Size, bundle.Data.Version, bundle.Data.CrcValue, bundle);
 }
        private void AssetBundleLoader_LoadCompleted(Object sender, LoadCompletedEventArgs e)
        {
            AssetBundleCache assetBundleCache = e.UserToken as AssetBundleCache;

            if (assetBundleCache != null && m_AssetBundles != null && m_AssetBundles.ContainsValue(assetBundleCache))
            {
                if (e.Cancelled)
                {
                    assetBundleCache.UpdateStatus("Loading cancelled.");
                }
                else if (e.IsError)
                {
                    assetBundleCache.UpdateStatus("Error: " + e.Error);
                }
                else
                {
                    assetBundleCache.UpdateStatus(e.Request.GetAssetBundle());
                }
                UpdateRequestTasks();
            }
        }
Esempio n. 6
0
 internal AssetAsyncLoad(AssetBundleCache origin, AssetKey key, UnityEngine.AssetBundleRequest asyncRequest)
 {
     m_Origin       = origin;
     m_Key          = key;
     m_AsyncRequest = asyncRequest;
 }