Beispiel #1
0
        /// <summary>
        /// 执行已做的修改
        /// </summary>
        void ExecuteModified()
        {
            ResourcesManifest old_resources_manifest = new ResourcesManifest();

            old_resources_manifest.Load(EditorCommon.RESOURCES_MANIFEST_FILE_PATH);

            //压缩AB包
            bool compress = BuildAssetBundle.CompressAssetBundles(old_resources_manifest
                                                                  , Manifest);
            //保存数据
            bool save = compress ? SaveData() : false;
            //拷贝资源
            bool copy    = save ? BuildAssetBundle.CopyNativeAssetBundleToStreamingAssets(Manifest) : false;
            bool succeed = compress && copy && save;

            if (succeed)
            {
                //同步数据
                if (AssetBundleBuildWindow.Instance != null)
                {
                    AssetBundleBuildWindow.Instance.SyncConfigForm(Manifest.Data);
                }
                else
                {
                    AssetBundleBuild buildData = new AssetBundleBuild();
                    buildData.Load(EditorCommon.ASSETBUNDLE_BUILD_RULE_FILE_PATH);
                    buildData.SyncConfigFrom(Manifest.Data);
                    buildData.Save(EditorCommon.ASSETBUNDLE_BUILD_RULE_FILE_PATH);
                }
            }

            string title         = "执行配置AssetBundle" + (succeed ? "成功" : "失败");
            string compress_desc = "压缩资源 - " + (compress ? "成功" : "失败");
            string save_desc     = "保存配置文件 - " + (save ? "成功" : "失败");
            string copy_desc     = "拷贝初始资源至安装包目录 - " + (copy ? "成功" : "失败");
            string desc          = compress_desc + "\n"
                                   + save_desc + "\n"
                                   + copy_desc + "\n\n";

            EditorUtility.DisplayDialog(title, desc, "确认");
        }
 /// <summary>
 ///
 /// </summary>
 void LoadData()
 {
     asset_bundle_build_ = new AssetBundleBuild();
     asset_bundle_build_.Load(AssetBundleBuild.FILE_FULL_NAME);
     Build();
 }
        /// <summary>
        ///
        /// </summary>
        void LoadData()
        {
            asset_bundle_build_ = new AssetBundleBuild();
            if (!asset_bundle_build_.Load(EditorCommon.ASSETBUNDLE_BUILD_RULE_FILE_PATH))
            {
                if (EditorUtility.DisplayDialog("初始化打包配置文件", "当前打包配置文件不存在, 需要生成默认配置文件!", "生成"))
                {
                    float total = 0;
                    if (Directory.Exists(EditorCommon.SCENE_START_PATH))
                    {
                        string[] files = Directory.GetFiles(EditorCommon.SCENE_START_PATH, "*.unity", SearchOption.AllDirectories);
                        total += files.Length;
                    }
                    if (Directory.Exists(asset_bundle_build_.BuildStartFullPath))
                    {
                        string[] dirs = Directory.GetDirectories(asset_bundle_build_.BuildStartFullPath, "*", SearchOption.AllDirectories);
                        total += dirs.Length;
                    }

                    float current = 0f;
                    asset_bundle_build_.GenerateDefaultData((name) =>
                    {
                        //进度条提示
                        current       += 1.0f;
                        float progress = current / total;
                        EditorUtility.DisplayProgressBar("初始化打包配置文件", "正在初始化 " + name, progress);
                    });

                    EditorUtility.ClearProgressBar();
                    Build();
                }
            }
            else
            {
                if (EditorUtility.DisplayDialog("更新打包配置文件", "是否需要更新打包配置文件!(不执行更新可能会导致资源变更无法被正确识别)", "更新", "不更新"))
                {
                    float total = 0;
                    if (Directory.Exists(EditorCommon.SCENE_START_PATH))
                    {
                        string[] files = Directory.GetFiles(EditorCommon.SCENE_START_PATH, "*.unity", SearchOption.AllDirectories);
                        total += files.Length;
                    }
                    if (Directory.Exists(asset_bundle_build_.BuildStartFullPath))
                    {
                        string[] dirs = Directory.GetDirectories(asset_bundle_build_.BuildStartFullPath, "*", SearchOption.AllDirectories);
                        total += dirs.Length;
                    }

                    float current = 0f;
                    asset_bundle_build_.MatchData((name) =>
                    {
                        //进度条提示
                        current       += 1.0f;
                        float progress = current / total;
                        EditorUtility.DisplayProgressBar("更新打包配置文件", "正在更新 " + name, progress);
                    });
                    EditorUtility.ClearProgressBar();
                }

                Build();
            }
        }