/// <summary> /// 在给定的根目录下,根据组名检查某个扩展包(组)是否有效 /// </summary> /// <param name="packages_root_path"></param> /// <param name="group_name"></param> /// <returns></returns> internal static bool IsValid_ExtensionGroup_InPackages(string packages_root_path, string group_name) { var arr = VFSUtil.GetValidExtensionGroupNames(VFSUtil.GetExtensionPackageRootFolderInPackages(packages_root_path)); if (arr == null || arr.Length == 0) { return(false); } return(arr.Contains(group_name)); }
/// <summary> /// 在给定的目录下,是否有任何一个有效的扩展组 /// </summary> /// <param name="packages_root_path"></param> /// <returns></returns> internal static bool IsAnyValidExtensionGroup_InPackages(string packages_root_path) { var arr = VFSUtil.GetValidExtensionGroupNames(VFSUtil.GetExtensionPackageRootFolderInPackages(packages_root_path)); if (arr == null || arr.Length == 0) { return(false); } return(true); }
private void RefreshData_Left_list() { if (mLeft_Select_Platform == null) { return; } var platform_name = XPlatformUtil.GetNameText(mLeft_Select_Platform.Value); string source_packages_root_path = VFSEditorUtil.GetSourcePackagesFolderPath(platform_name); string package_stream_root_path = VFSUtil.GetPackagesRootFolderInStreamingAssets(platform_name); //检查,StreamingAssets if (mDict_MainPackage_SourcePackage[mLeft_Select_Platform.Value] && mDict_MainPackage_StreamingAssets[mLeft_Select_Platform.Value]) { //两边都有,我们来看看两边的build_id是否一致 string build_info_source_path = VFSUtil.GetMainPackage_BuildInfo_Path(source_packages_root_path); string build_info_stream_path = VFSUtil.GetMainPackage_BuildInfo_Path(package_stream_root_path); if (File.Exists(build_info_stream_path) && File.Exists(build_info_source_path)) { try { var build_info_source = JsonUtility.FromJson <TinaX.VFSKitInternal.BuildInfo>(File.ReadAllText(build_info_source_path)); var build_info_stream = JsonUtility.FromJson <TinaX.VFSKitInternal.BuildInfo>(File.ReadAllText(build_info_stream_path)); if (build_info_source.BuildID != build_info_stream.BuildID) { main_package_not_same = true; } } catch { } } } else { main_package_not_same = false; } //扩展组的处理 mDict_ExtensionGroups_Info.Clear(); if (mDict_Extensions_SourcePackage[mLeft_Select_Platform.Value]) { string source_extensions_root_path = VFSUtil.GetExtensionPackageRootFolderInPackages(source_packages_root_path); string[] group_names = VFSUtil.GetValidExtensionGroupNames(source_extensions_root_path); foreach (var group in group_names) { //streamingassets 中存在嘛 if (VFSUtil.IsValidExtensionPackage(VFSUtil.GetExtensionGroupFolder(package_stream_root_path, group))) { //存在,检查build_id string build_id_path_source = VFSUtil.GetExtensionGroup_BuildInfo_Path(source_packages_root_path, group); string build_id_path_stream = VFSUtil.GetExtensionGroup_BuildInfo_Path(package_stream_root_path, group); try { var b_info_source = JsonUtility.FromJson <TinaX.VFSKitInternal.BuildInfo>(File.ReadAllText(build_id_path_source)); var b_info_stream = JsonUtility.FromJson <TinaX.VFSKitInternal.BuildInfo>(File.ReadAllText(build_id_path_stream)); if (b_info_source.BuildID == b_info_stream.BuildID) { mDict_ExtensionGroups_Info.Add(group, 2); } else { mDict_ExtensionGroups_Info.Add(group, 1); } } catch { } if (!mDict_ExtensionGroups_Info.ContainsKey(group)) { mDict_ExtensionGroups_Info.Add(group, 2); } } else { // 不存在 mDict_ExtensionGroups_Info.Add(group, 0); } } } mFlag_RefreshData_left_platform = mLeft_Select_Platform; mFlag_RefreshData_left = true; }
/// <summary> /// 获取 Source Pakcages 下存放打扩展组资源文件的根目录 (vfs_extension) /// </summary> /// <param name="platform_name"></param> /// <returns></returns> public static string Get_ExtensionGroupsRootFolder_InSourcePackages(string platform_name) { return(VFSUtil.GetExtensionPackageRootFolderInPackages(GetSourcePackagesFolderPath(platform_name))); }
private bool mCurSaveBinary; //是否保存二进制文件 private void OnEnable() { if (VFS_Platform != null) { flag_platform_from_param = true; platform_from_param = VFS_Platform.Value; //如果参数给的是平台,那么要倒推出,当前该平台可用的分支 string[] main_package_branches = VFSManagerEditor.VersionManager.GetBranchNamesByMainPackage(platform_from_param); if (main_package_branches != null && main_package_branches.Length > 0) { match_branches_from_param.AddRange(main_package_branches); } string platform_name = XPlatformUtil.GetNameText(platform_from_param); string source_packages_folder_path = Path.Combine(VFSEditorConst.PROJECT_VFS_SOURCE_PACKAGES_ROOT_PATH, platform_name); string[] extension_groups_in_source_package_folder = VFSUtil.GetValidExtensionGroupNames(VFSUtil.GetExtensionPackageRootFolderInPackages(source_packages_folder_path)); foreach (var groupName in extension_groups_in_source_package_folder) { string[] group_branches = VFSManagerEditor.VersionManager.GetBranchNamesByExtensionGroup(platform_from_param, groupName); if (group_branches != null && group_branches.Length > 0) { match_branches_from_param.AddRange(group_branches); } } match_branches_from_param_arr = match_branches_from_param.ToArray(); } if (!BranchName.IsNullOrEmpty()) { flag_branchName_from_param = true; branchName_from_param = BranchName; isBrancNameFromParamValid = VFSManagerEditor.VersionManager.TryGetVersionBranch(branchName_from_param, out mCurBranch); mCurSelectBranchName = BranchName; } }