예제 #1
0
        /// <summary>
        /// 加载ResourcesManifest文件
        /// </summary>
        public static ResourcesManifest LoadResourceManifestByPath(string path)
        {
            var result = new ResourcesManifest();

            result.Load(path);
            return(result);
        }
예제 #2
0
        void ExportResourcesManifestFile(AssetBundleManifest manifest)
        {
            if (manifest == null)
            {
                return;
            }
            var info = new ResourcesManifest();
            //读取所有AB
            //读取主manifest信息
            var rootDir      = PathResolver.BUILD_PATH;
            var manifestName = PathResolver.MAIN_MANIFEST_FILE_NAME;
            var desc         = new ResourcesManifestData.AssetBundleData();

            desc.assetBundleName = PathResolver.MAIN_MANIFEST_FILE_NAME;
            desc.size            = FileHelper.GetFileSize(rootDir + manifestName);
            info.data.assetbundles.Add(manifestName, desc);

            //读取其他AB信息
            foreach (var name in manifest.GetAllAssetBundles())
            {
                desc = new ResourcesManifestData.AssetBundleData();
                desc.assetBundleName = name;
                desc.size            = FileHelper.GetFileSize(rootDir + name);
                desc.isNative        = true;
                var ab = AssetBundle.LoadFromFile(rootDir + name);
                foreach (var asset in ab.GetAllAssetNames())
                {
                    desc.assets.Add(asset);
                }
                ab.Unload(false);
                info.data.assetbundles.Add(name, desc);
            }

            //读取旧的ResourcesManifest信息,同步一下其他信息
            var oldManiFest = new ResourcesManifest();

            oldManiFest.Load(PathResolver.EDITOR_RESOURCE_MANIFEST_FILE_PATH);
            if (oldManiFest.data != null && oldManiFest.data.assetbundles.Count > 0)
            {
                foreach (var assetBundle in oldManiFest.data.assetbundles.Values)
                {
                    if (string.IsNullOrEmpty(assetBundle.assetBundleName))
                    {
                        continue;
                    }
                    if (info.data.assetbundles.ContainsKey(assetBundle.assetBundleName))
                    {
                        info.data.assetbundles[assetBundle.assetBundleName].isNative = assetBundle.isNative;
                    }
                }
            }
            var buildConfig = AssetDatabase.LoadAssetAtPath <AssetBundleBuildConfig>(AssetBundleBuildPanel.savePath);

            info.data.version = buildConfig.version;
            //保存ResourcesInfo
            info.Save(PathResolver.EDITOR_RESOURCE_MANIFEST_FILE_PATH);
        }