/// <summary>
        ///   调整场景数据(匹配最新的场景目录,删除无用数据)
        /// </summary>
        static void MatchSceneRuleData(ref AssetBundleBuildData.SceneBuild old, Action <string> progress_report)
        {
            AssetBundleBuildData.SceneBuild rules = new AssetBundleBuildData.SceneBuild();
            DirectoryInfo assets = new DirectoryInfo(EditorCommon.SCENE_START_PATH);

            if (assets.Exists)
            {
                var files = assets.GetFiles("*.unity", SearchOption.AllDirectories);
                foreach (var f in files)
                {
                    if (progress_report != null)
                    {
                        progress_report(f.FullName);
                    }
                    var scene = old.Scenes.Find((elem) =>
                    {
                        return(elem.ScenePath == f.FullName);
                    });
                    if (scene == null)
                    {
                        scene = new AssetBundleBuildData.SceneBuild.Element()
                        {
                            ScenePath = f.FullName
                        };
                    }
                    rules.Scenes.Add(scene);
                }

                old = rules;
            }
        }
示例#2
0
        /// <summary>
        /// 同步场景资源配置
        /// </summary>
        static void SyncSceneAssetConfig(AssetBundleBuildData.SceneBuild.Element element, ResourcesManifestData data
                                         , bool is_write)
        {
            string localPath = EditorCommon.AbsoluteToRelativePath(element.ScenePath);

            localPath = localPath.ToLower();

            // 场景文件与配置文件
            string[] files = new string[] { localPath, SceneConfig.GetSceneConfigPath(localPath).ToLower() };
            foreach (var path in files)
            {
                string key = EditorCommon.ConvertToAssetBundleName(path);
                ResourcesManifestData.AssetBundle ab_data;
                if (data.AssetBundles.TryGetValue(key, out ab_data))
                {
                    if (is_write)
                    {
                        ab_data.IsCompress    = element.IsCompress;
                        ab_data.IsNative      = element.IsNative;
                        ab_data.IsPermanent   = false;
                        ab_data.IsStartupLoad = false;
                    }
                    else
                    {
                        element.IsCompress = ab_data.IsCompress;
                        element.IsNative   = ab_data.IsNative;
                    }
                }
            }
        }
        /// <summary>
        /// 同步场景资源配置
        /// </summary>
        static void SyncSceneAssetConfig(AssetBundleBuildData.SceneBuild.Element element, ResourcesManifestData data
                                         , bool is_write)
        {
            string path = element.ScenePath.ToLower();
            string key  = EditorCommon.ConvertToAssetBundleName(path);

            ResourcesManifestData.AssetBundle ab_data;
            if (data.AssetBundles.TryGetValue(key, out ab_data))
            {
                if (is_write)
                {
                    ab_data.IsCompress    = element.IsCompress;
                    ab_data.IsNative      = element.IsNative;
                    ab_data.IsPermanent   = false;
                    ab_data.IsStartupLoad = false;
                }
                else
                {
                    element.IsCompress = ab_data.IsCompress;
                    element.IsNative   = ab_data.IsNative;
                }
            }
        }