コード例 #1
0
 private void BuildPackageTree_lostItems(Configs.UserConfig.JsonClass.Package package, PackageTreeItem p)
 {
     //遍历bundles数组添加所有丢失的bundle
     foreach (string bundlePath in package.Bundles)
     {
         string[]        folderNames  = bundlePath.Split('/'); //路径字符串中必须全部为/ 不能有\
         PackageTreeItem parent       = p;
         string          relativePath = "";
         int             i;
         for (i = 0; i < folderNames.Length - 1; i++)
         {
             relativePath += folderNames[i];
             parent        = FindOrCreateFolderItemByFolderName(parent, folderNames[i], relativePath);
             relativePath += "/";
         }
         string bundleName = Path.GetFileNameWithoutExtension(folderNames[i]);
         relativePath += bundleName;
         FindOrCreateBundleItemByBundleName(parent, bundleName, relativePath);
     }
     //遍历所有空文件夹数组添加丢失的空文件夹
     foreach (string folderPath in package.EmptyFolders)
     {
         string[]        folderNames  = folderPath.Split('/');
         PackageTreeItem parent       = p;
         string          relativePath = "";
         int             i;
         for (i = 0; i < folderNames.Length; i++)
         {
             relativePath += folderNames[i];
             parent        = FindOrCreateFolderItemByFolderName(parent, folderNames[i], relativePath);
             relativePath += "/";
         }
     }
 }
コード例 #2
0
        //由于PackageMapConfig不会随Package的修改而更新,所以必须由此函数获取package信息
        public List <Configs.UserConfig.JsonClass.Package> GetPackageMap()
        {
            var packages = new List <Configs.UserConfig.JsonClass.Package>();

            foreach (var package in G.g.packageTree.Packages)
            {
                var p = new Configs.UserConfig.JsonClass.Package()
                {
                    Bundles            = new List <string>(),
                    EmptyFolders       = new List <string>(),
                    PackageName        = package.displayName,
                    Color              = ColorUtility.ToHtmlStringRGB(package.packageColor),
                    CopyToStreaming    = package.copyToStreaming,
                    DeploymentLocation = package.deploymentLocation,
                    Necessery          = package.necessery,
                };
                if (package.hasChildren)
                {
                    foreach (PackageTreeItem packageItem in package.children)
                    {
                        RecursiveAddItem(packageItem, p);
                    }
                }
                packages.Add(p);
            }

            return(packages);
        }
コード例 #3
0
 private void BuildPackageTreeFromBundleTree(Configs.UserConfig.JsonClass.Package package, PackageTreeItem p)
 {
     foreach (string bundlePath in package.Bundles)
     {
         if (G.g.bundleTree.bundleDic.ContainsKey(bundlePath))
         {
             RecursiveAddParents(G.g.bundleTree.bundleDic[bundlePath], p);
         }
     }
     foreach (string emptyFolderPath in package.EmptyFolders)
     {
         if (G.g.bundleTree.folderDic.ContainsKey(emptyFolderPath))
         {
             RecursiveAddParents(G.g.bundleTree.folderDic[emptyFolderPath], p);
         }
     }
 }
コード例 #4
0
 private void RecursiveAddItem(PackageTreeItem packageItem, Configs.UserConfig.JsonClass.Package package)
 {
     if (packageItem.hasChildren)
     {
         foreach (PackageTreeItem item in packageItem.children)
         {
             RecursiveAddItem(item, package);
         }
     }
     else
     {
         if (!packageItem.bundleItem.isFolder)
         {
             package.Bundles.Add(packageItem.bundleItem.relativePath);
         }
         else
         {
             package.EmptyFolders.Add(packageItem.bundleItem.relativePath);
         }
     }
 }