コード例 #1
0
        /// <summary>
        ///  一般来说,尽可能使用AssetBundle.LoadFromFile。该API在速度,磁盘使用率和运行时内存使用方面是最有效的
        /// </summary>
        public AssetBundlePackage LoadAssetBundleFromFile(string assetBundleName)
        {
            assetBundleName = assetBundleName.ToLower();
            string[] list = Instance.GetAssetBundleDependencies(assetBundleName);
            if (list.Length != 0)
            {
                for (int i = 0; i < list.Length; i++)
                {
                    LoadAssetBundleFromFile(list[i]);
                }
            }

            if (!allAssetBundleDic.ContainsKey(assetBundleName))
            {
                AssetBundle        bundle         = AssetBundle.LoadFromFile(AutoGetResourcePath(assetBundleName, false));
                AssetBundlePackage tmpAssetBundle = new AssetBundlePackage(bundle, assetBundleName);
                AddAssetBundleToDic(tmpAssetBundle);
                //HFLog.L("同步加载AssetBundle   " + assetBundleName);
                return(tmpAssetBundle);
            }
            else
            {
                AssetBundlePackage ab = allAssetBundleDic[assetBundleName];
                ab.Retain();
                return(ab);
            }
        }