| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.IO;
 
- using UnityEngine;
 
- namespace VEngine
 
- {
 
-     public static class Versions
 
-     {
 
-         public const string APIVersion = "7.0";
 
-         public static Manifest Manifest;
 
-         private static readonly Dictionary<string, string> BundleWithPathOrUrLs = new Dictionary<string, string>();
 
-         public static bool SimulationMode;
 
-         public static readonly List<string> builtinAssets = new List<string>();
 
-         public static bool OfflineMode { get; set; }
 
-         public static Func<string, Type, Asset> FuncCreateAsset { get; set; }
 
-         public static Func<string, bool, Scene> FuncCreateScene { get; set; }
 
-         public static Func<string, bool, ManifestAsset> FuncCreateManifest { get; set; }
 
-         public static string ManifestsVersion => Manifest == null ? string.Empty : Manifest.version.ToString();
 
-         public static string PlayerDataPath { get; set; }
 
-         public static string DownloadURL { get; set; }
 
-         public static string DownloadDataPath { get; set; }
 
-         internal static string LocalProtocol { get; set; }
 
-         public static string PlatformName { get; set; }
 
-         public static Asset CreateAsset(string path, Type type)
 
-         {
 
-             if (string.IsNullOrEmpty(path)) throw new ArgumentException(nameof(path));
 
-             return FuncCreateAsset(path, type);
 
-         }
 
-         public static Scene CreateScene(string path, bool additive)
 
-         {
 
-             if (string.IsNullOrEmpty(path)) throw new ArgumentException(nameof(path));
 
-             return FuncCreateScene(path, additive);
 
-         }
 
-         public static ManifestAsset CreateManifest(string name, bool builtin)
 
-         {
 
-             if (string.IsNullOrEmpty(name)) throw new ArgumentException(nameof(name));
 
-             return FuncCreateManifest(name, builtin);
 
-         }
 
-         public static void Override(Manifest value)
 
-         {
 
-             Manifest = value;
 
-         }
 
-         public static string GetDownloadDataPath(string file)
 
-         {
 
-             return $"{DownloadDataPath}/{file}";
 
-         }
 
-         public static string GetPlayerDataURL(string file)
 
-         {
 
-             return $"{LocalProtocol}{PlayerDataPath}/{file}";
 
-         }
 
-         public static string GetPlayerDataPath(string file)
 
-         {
 
-             return $"{PlayerDataPath}/{file}";
 
-         }
 
-         public static string GetDownloadURL(string file)
 
-         {
 
-             return $"{DownloadURL}{PlatformName}/{file}";
 
-         }
 
-         public static string GetTemporaryPath(string file)
 
-         {
 
-             var ret = $"{Application.temporaryCachePath}/{file}";
 
-             var dir = Path.GetDirectoryName(ret);
 
-             if (!string.IsNullOrEmpty(dir) && !Directory.Exists(dir)) Directory.CreateDirectory(dir);
 
-             return ret;
 
-         }
 
-         public static ClearHistory ClearAsync()
 
-         {
 
-             var clearAsync = new ClearHistory();
 
-             clearAsync.Start();
 
-             return clearAsync;
 
-         }
 
-         public static void InitializeOnLoad()
 
-         {
 
-             if (FuncCreateAsset == null) FuncCreateAsset = BundledAsset.Create;
 
-             if (FuncCreateScene == null) FuncCreateScene = BundledScene.Create;
 
-             if (FuncCreateManifest == null) FuncCreateManifest = ManifestAsset.Create;
 
-             if (Application.platform != RuntimePlatform.OSXEditor &&
 
-                 Application.platform != RuntimePlatform.OSXPlayer &&
 
-                 Application.platform != RuntimePlatform.IPhonePlayer)
 
-             {
 
-                 if (Application.platform == RuntimePlatform.WindowsEditor ||
 
-                     Application.platform == RuntimePlatform.WindowsPlayer)
 
-                     LocalProtocol = "file:///";
 
-                 else
 
-                     LocalProtocol = string.Empty;
 
-             }
 
-             else
 
-             {
 
-                 LocalProtocol = "file://";
 
-             }
 
-             if (string.IsNullOrEmpty(PlatformName)) PlatformName = Utility.GetPlatformName();
 
-             if (string.IsNullOrEmpty(PlayerDataPath))
 
-                 PlayerDataPath = $"{Application.streamingAssetsPath}/{Utility.buildPath}";
 
-             if (string.IsNullOrEmpty(DownloadDataPath))
 
-                 DownloadDataPath = $"{Application.persistentDataPath}/{Utility.buildPath}";
 
-             if (!Directory.Exists(DownloadDataPath)) Directory.CreateDirectory(DownloadDataPath);
 
-         }
 
-         public static InitializeVersions InitializeAsync(string downloadUrl)
 
-         {
 
-             DownloadURL = downloadUrl;
 
-             InitializeOnLoad();
 
-             var operation = new InitializeVersions();
 
-             operation.Start();
 
-             return operation;
 
-         }
 
-         public static UpdateVersions UpdateAsync(string file)
 
-         {
 
-             var operation = new UpdateVersions
 
-             {
 
-                 file = file
 
-             };
 
-             operation.Start();
 
-             return operation;
 
-         }
 
-         public static GetDownloadSize GetDownloadSizeAsync()
 
-         {
 
-             var getDownloadSize = new GetDownloadSize();
 
-             getDownloadSize.bundles.AddRange(Manifest.bundles);
 
-             getDownloadSize.Start();
 
-             return getDownloadSize;
 
-         }
 
-         public static GetDownloadSize GetDownloadSizeAsync(UpdateVersions updateVersion)
 
-         {
 
-             var getDownloadSize = new GetDownloadSize();
 
-             if (updateVersion.asset != null) getDownloadSize.bundles.AddRange(updateVersion.asset.asset.bundles);
 
-             getDownloadSize.Start();
 
-             return getDownloadSize;
 
-         }
 
-         public static DownloadVersions DownloadAsync(IEnumerable<DownloadInfo> groups)
 
-         {
 
-             var download = new DownloadVersions();
 
-             download.items.AddRange(groups);
 
-             download.Start();
 
-             return download;
 
-         }
 
-         public static bool IsDownloaded(ManifestBundle bundle)
 
-         {
 
-             if (OfflineMode || builtinAssets.Contains(bundle.nameWithAppendHash)) return true;
 
-             //modified by guodong start
 
-             if(Manifest.Contains(bundle.nameWithAppendHash))
 
-             {
 
-                 return true;
 
-             }
 
-             //modified by guodong end
 
-             var path = GetDownloadDataPath(bundle.nameWithAppendHash);
 
-             var file = new FileInfo(path);
 
-             return file.Exists && file.Length == bundle.size && Utility.ComputeCRC32(path) == bundle.crc;
 
-         }
 
-         internal static void SetBundlePathOrURl(string assetBundleName, string url)
 
-         {
 
-             BundleWithPathOrUrLs[assetBundleName] = url;
 
-         }
 
-         internal static string GetBundlePathOrURL(ManifestBundle bundle)
 
-         {
 
-             var assetBundleName = bundle.nameWithAppendHash;
 
-             if (BundleWithPathOrUrLs.TryGetValue(assetBundleName, out var path)) return path;
 
-             if (OfflineMode || builtinAssets.Contains(assetBundleName))
 
-             {
 
-                 path = GetPlayerDataPath(assetBundleName);
 
-                 BundleWithPathOrUrLs[assetBundleName] = path;
 
-                 return path;
 
-             }
 
-             if (IsDownloaded(bundle))
 
-             {
 
-                 path = GetDownloadDataPath(assetBundleName);
 
-                 BundleWithPathOrUrLs[assetBundleName] = path;
 
-                 return path;
 
-             }
 
-             path = GetDownloadURL(assetBundleName);
 
-             BundleWithPathOrUrLs[assetBundleName] = path;
 
-             return path;
 
-         }
 
-         public static bool GetDependencies(string assetPath, out ManifestBundle bundle, out ManifestBundle[] bundles)
 
-         {
 
-             if (Manifest.Contains(assetPath))
 
-             {
 
-                 bundle = Manifest.GetBundle(assetPath);
 
-                 bundles = Manifest.GetDependencies(bundle);
 
-                 return true;
 
-             }
 
-             bundle = null;
 
-             bundles = null;
 
-             return false;
 
-         }
 
-         public static bool Contains(string assetPath)
 
-         {
 
-             return Manifest.Contains(assetPath);
 
-         }
 
-         public static ManifestBundle GetBundle(string bundle)
 
-         {
 
-             return Manifest.GetBundle(bundle);
 
-         }
 
-     }
 
- }
 
 
  |