Esempio n. 1
0
    public static void SetAssetBundleName(string path)
    {
        string n = Path.GetFileNameWithoutExtension(path);

        n = ALG.EncodeBundleName(n);
        SetAssetBundleName(path, n);
    }
Esempio n. 2
0
    public static void SetAssetBundleName(AssetImporter ai)
    {
        string n = Path.GetFileNameWithoutExtension(ai.assetPath);

        n = ALG.EncodeBundleName(n);
        ai.assetBundleName = n;
    }
Esempio n. 3
0
        IEnumerator RealLoadAssetBundle(AssetTask assetTask)
        {
            assetTask.abName = ALG.DecodeBundleName(assetTask.abName);
            var dependencies = _assetDependency.GetDependencies(ALG.EncodeBundleName(assetTask.abName));
            var taskArray    = new AssetTask[dependencies.Length];

            for (var i = 0; i < dependencies.Length; i++)
            {
                var task = new AssetTask(dependencies[i], null, null, null, null);
                taskArray[i] = task;
                new Task(RealLoadAssetBundle(task), "AssetBundleManager_" + task.abName);
            }
            var j = 0;

            while (j < taskArray.Length)
            {
                if (taskArray[j].isFinish)
                {
                    j++;
                }
                else
                {
                    yield return(null);
                }
            }
            _assetBundleLoader.LoadAssetBundle(assetTask.abName, (AssetBundle ab) =>
            {
                _assetBundleLoader.GetAssetBundle(assetTask.abName).AddReference();
                assetTask.isFinish = true;
            }, null);
            while (!assetTask.isFinish)
            {
                yield return(null);
            }
        }
Esempio n. 4
0
 public static string DecodeBundleName(string name)
 {
     if (name.EndsWith(".ab"))
     {
         return(ALG.DecodeHexString(name.Substring(0, name.Length - 3)));
     }
     return(name);
 }
Esempio n. 5
0
 public static string EncodeBundleName(string name)
 {
     if (name.EndsWith(".ab"))
     {
         return(name);
     }
     return(ALG.EncodeHexString(name) + ".ab");
 }
Esempio n. 6
0
    public static void BuildAssetBundle(string path)
    {
        AssetBundleBuild abb = new AssetBundleBuild();

        abb.assetNames      = new string[] { path };
        abb.assetBundleName = ALG.EncodeHexString(Path.GetFileNameWithoutExtension(path)) + ".ab";
        BuildPipeline.BuildAssetBundles(FilePathDefine.projectExportPath, new AssetBundleBuild[] { abb }, babo, EditorUserBuildSettings.activeBuildTarget);
    }
Esempio n. 7
0
 /// <summary>
 /// 加载manifest
 /// </summary>
 private void LoadManifest()
 {
     foreach (string path in FilePathDefine.loadedPath)
     {
         var _path = Path.Combine(path, ALG.EncodeHexString(FilePathDefine.platform));
         if (File.Exists(_path))
         {
             var bundleLoadRequest = AssetBundle.LoadFromFile(_path);
             _abManifest = bundleLoadRequest.LoadAsset <AssetBundleManifest>("AssetBundleManifest");
             Debug.Log(_abManifest);
             return;
         }
     }
 }
Esempio n. 8
0
        private void RealUnloadAssetWithName(string name)
        {
            name = ALG.DecodeBundleName(name);
            string[] dependencies = _assetDependency.GetDependencies(ALG.EncodeBundleName(name));
            for (int i = 0; i < dependencies.Length; i++)
            {
                RealUnloadAssetWithName(dependencies[i]);
            }
            var abCache = _assetBundleLoader.GetAssetBundle(name);

            if (null == abCache)
            {
                return;
            }
            abCache.RemoveReference();
            if (0 >= abCache.ReferencesCount)
            {
                releaseList.Add(abCache);
            }
        }
Esempio n. 9
0
        IEnumerator RealLoadAssetBundle(AssetBundleCache abCache)
        {
            //foreach(string path in FilePathDefine.loadedPath){
            var paths = FilePathDefine.loadedPath;
            var _path = Path.Combine(paths[0], ALG.EncodeBundleName(abCache.Name));

            if (!File.Exists(_path))
            {
                _path = Path.Combine(paths[1], ALG.EncodeBundleName(abCache.Name));
            }
            var bundleLoadRequest = AssetBundle.LoadFromFileAsync(_path);

            yield return(bundleLoadRequest);

            var myLoadedAssetBundle = bundleLoadRequest.assetBundle;

            abCache.Target = myLoadedAssetBundle;
            abCache.LoadAssetSuccessCallback(myLoadedAssetBundle);
            abCache.isLock = false;
            //}
        }
Esempio n. 10
0
        public string ComputeHmac(string data, string secretKey, ALG alg)
        {
            byte[] bdata = Encoding.UTF8.GetBytes(data);
            byte[] bkey  = Encoding.UTF8.GetBytes(secretKey);

            switch (alg)
            {
            case ALG.HS256:
                return(Convert.ToBase64String(ComputeHmacsha256(bdata, bkey)));

            case ALG.HS512:
                return(Convert.ToBase64String(ComputeHmacsha512(bdata, bkey)));

            case ALG.HS384:
                return(Convert.ToBase64String(ComputeHmacsha384(bdata, bkey)));

            case ALG.RS256:
                return(Convert.ToBase64String(ComputeRS256(bdata, bkey)));

            default:
                return(Convert.ToBase64String(ComputeHmacsha256(bdata, bkey)));
            }
        }
Esempio n. 11
0
        private string GetSignature(string headerStr, string payloadStr, string SecretKey, ALG alg)
        {
            string value = EncryptSvc.ComputeHmac(headerStr.Base64Encode() + "." + payloadStr.Base64Encode(), SecretKey, alg);

            return(value);
        }