Beispiel #1
0
        public BundleLoader(System.Uri uri, BundleInfo bundleInfo, BundleLoader[] dependencies, BundleManager manager)
        {
            if (bundleInfo == null)
            {
                throw new System.ArgumentNullException("bundleInfo");
            }

            this.uri        = uri;
            this.bundleInfo = bundleInfo;
            this.manager    = manager;
            this.manager.AddBundleLoader(this);
            this.requestCache = new Dictionary <string, AssetBundleRequest>();
            this.executor     = this.manager.Executor;

            this.dependencies = new List <BundleLoader>();
            if (dependencies == null || dependencies.Length == 0)
            {
                return;
            }

            for (int i = 0; i < dependencies.Length; i++)
            {
                var dependency = dependencies[i];
                if (!this.dependencies.Contains(dependency))
                {
                    dependency.Retain();
                    this.dependencies.Add(dependency);
                }
            }
        }
Beispiel #2
0
        public override BundleLoader Create(BundleManager manager, BundleInfo bundleInfo, BundleLoader[] dependencies)
        {
            Uri loadBaseUri = this.BaseUri;

            if (this.useCache && BundleUtil.ExistsInCache(bundleInfo))
            {
                loadBaseUri = this.BaseUri;
                return(new WWWBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, dependencies, manager, this.useCache));
            }

            if (BundleUtil.ExistsInStorableDirectory(bundleInfo))
            {
                /* Path: Application.persistentDataPath + "/bundles/" + bundleInfo.Filename  */
                loadBaseUri = new Uri(BundleUtil.GetStorableDirectory());
            }
#if !UNITY_WEBGL || UNITY_EDITOR
            else if (BundleUtil.ExistsInReadOnlyDirectory(bundleInfo))
            {
                /* Path: Application.streamingAssetsPath + "/bundles/" + bundleInfo.Filename */
                loadBaseUri = new Uri(BundleUtil.GetReadOnlyDirectory());
            }
#endif
            if (bundleInfo.IsEncrypted)
            {
                if (this.decryptor != null && bundleInfo.Encoding.Equals(decryptor.AlgorithmName))
                {
                    return(new CryptographBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, dependencies, manager, decryptor));
                }

                throw new NotSupportedException(string.Format("Not support the encryption algorithm '{0}'.", bundleInfo.Encoding));
            }

            return(new WWWBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, dependencies, manager, this.useCache));
        }
Beispiel #3
0
        public BundleLoader(System.Uri uri, BundleInfo bundleInfo, BundleManager manager)
        {
            if (bundleInfo == null)
            {
                throw new System.ArgumentNullException("bundleInfo");
            }

            this.uri        = uri;
            this.bundleInfo = bundleInfo;
            this.manager    = manager;
            this.manager.AddBundleLoader(this);
            this.executor = this.manager.Executor;
        }
Beispiel #4
0
        public DefaultBundle(BundleInfo bundleInfo, BundleManager manager)
        {
            if (bundleInfo == null)
            {
                throw new System.ArgumentNullException("bundleInfo");
            }

            this.bundleInfo = bundleInfo;
            this.manager    = manager;
            this.manager.AddBundle(this);
            this.requestCache = new Dictionary <string, AssetBundleRequest>();
            this.loaders      = new List <BundleLoader>();
        }
Beispiel #5
0
        public override BundleLoader Create(BundleManager manager, BundleInfo bundleInfo)
        {
            Uri loadBaseUri = this.BaseUri;

            if (this.useCache && BundleUtil.ExistsInCache(bundleInfo))
            {
                //Load assets from the cache of Unity3d.
                loadBaseUri = this.BaseUri;
                return(new UnityWebRequestBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, manager, this.useCache));
            }

            if (BundleUtil.ExistsInStorableDirectory(bundleInfo))
            {
                //Load assets from the "Application.persistentDataPath/bundles" folder.
                /* Path: Application.persistentDataPath + "/bundles/" + bundleInfo.Filename  */
                loadBaseUri = new Uri(BundleUtil.GetStorableDirectory());
            }

#if !UNITY_WEBGL || UNITY_EDITOR
            else if (BundleUtil.ExistsInReadOnlyDirectory(bundleInfo))
            {
                //Load assets from the "Application.streamingAssetsPath/bundles" folder.
                /* Path: Application.streamingAssetsPath + "/bundles/" + bundleInfo.Filename */
                loadBaseUri = new Uri(BundleUtil.GetReadOnlyDirectory());
            }
#endif

            if (bundleInfo.IsEncrypted)
            {
                if (this.decryptor != null && bundleInfo.Encoding.Equals(decryptor.AlgorithmName))
                {
                    return(new CryptographBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, manager, decryptor));
                }

                throw new NotSupportedException(string.Format("Not support the encryption algorithm '{0}'.", bundleInfo.Encoding));
            }

            //Loads assets from an Internet address if it does not exist in the local directory.
            if (this.IsRemoteUri(loadBaseUri))
            {
                return(new UnityWebRequestBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, manager, this.useCache));
            }
            else
            {
                return(new FileAsyncBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, manager));
            }
        }
        public override BundleLoader Create(BundleManager manager, BundleInfo bundleInfo)
        {
            Uri loadBaseUri = this.BaseUri;

            if (BundleUtil.ExistsInStorableDirectory(bundleInfo))
            {
                /* Path: Application.persistentDataPath + "/bundles/" + bundleInfo.Filename  */
                loadBaseUri = new Uri(BundleUtil.GetStorableDirectory());
            }
#if !UNITY_WEBGL || UNITY_EDITOR
            else if (BundleUtil.ExistsInReadOnlyDirectory(bundleInfo))
            {
                /* Path: Application.streamingAssetsPath + "/bundles/" + bundleInfo.Filename */
                loadBaseUri = new Uri(BundleUtil.GetReadOnlyDirectory());
            }
#endif

            if (bundleInfo.IsEncrypted)
            {
                if (this.decryptor != null && bundleInfo.Encoding.Equals(decryptor.AlgorithmName))
                {
                    return(new CryptographBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, manager, decryptor));
                }

                throw new NotSupportedException(string.Format("Not support the encryption algorithm '{0}'.", bundleInfo.Encoding));
            }

#if UNITY_ANDROID && !UNITY_5_4_OR_NEWER
            if (loadBaseUri != null && loadBaseUri.Scheme.Equals("jar", StringComparison.OrdinalIgnoreCase))
            {
                return(new WWWBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, manager, false));
            }
#endif

            return(new FileAsyncBundleLoader(new Uri(loadBaseUri, bundleInfo.Filename), bundleInfo, manager));
        }
 public FileAsyncBundleLoader(Uri uri, BundleInfo bundleInfo, BundleLoader[] dependencies, BundleManager manager) : base(uri, bundleInfo, dependencies, manager)
 {
 }
 public override BundleLoader Create(BundleManager manager, BundleInfo bundleInfo, BundleLoader[] dependencies)
 {
     return(new FileAsyncBundleLoader(new Uri(this.BaseUri, bundleInfo.Filename), bundleInfo, dependencies, manager));
 }
 public UnityWebRequestBundleLoader(System.Uri uri, BundleInfo bundleInfo, BundleManager manager, bool useCache = true) : base(uri, bundleInfo, manager)
 {
     this.useCache = useCache | this.IsRemoteUri();
 }
 public override BundleLoader Create(BundleManager manager, BundleInfo bundleInfo)
 {
     return(new UnityWebRequestBundleLoader(new System.Uri(this.BaseUri, bundleInfo.Filename), bundleInfo, manager, this.useCache));
 }
 public FileAsyncBundleLoader(Uri uri, BundleInfo bundleInfo, BundleManager manager) : base(uri, bundleInfo, manager)
 {
 }
Beispiel #12
0
 public abstract BundleLoader Create(BundleManager manager, BundleInfo bundleInfo, BundleLoader[] dependencies);
Beispiel #13
0
 public abstract BundleLoader Create(BundleManager manager, BundleInfo bundleInfo);
Beispiel #14
0
 public WWWBundleLoader(Uri uri, BundleInfo bundleInfo, BundleManager manager, bool useCache) : base(uri, bundleInfo, manager)
 {
     this.useCache = useCache;
 }
Beispiel #15
0
 public override BundleLoader Create(BundleManager manager, BundleInfo bundleInfo)
 {
     return(new WWWBundleLoader(new Uri(this.BaseUri, bundleInfo.Filename), bundleInfo, manager, this.useCache));
 }
 public CryptographBundleLoader(Uri uri, BundleInfo bundleInfo, BundleManager manager, IDecryptor decryptor) : base(uri, bundleInfo, manager)
 {
     this.decryptor = decryptor;
 }
 public override BundleLoader Create(BundleManager manager, BundleInfo bundleInfo)
 {
     return(new CryptographBundleLoader(new Uri(this.BaseUri, bundleInfo.Filename), bundleInfo, manager, this.decryptor));
 }