public void AddDep(BundleNode dep)
 {
     if (!this.deps.Contains(dep))
     {
         this.deps.Add(dep);
     }
 }
        void BuildDependency()
        {
            if (!dirty)
            {
                return;
            }
            dirty = false;

            bundleNodes.Clear();
            assetNodes.Clear();

            SortedDictionary <string, List <string> > buildMap = new SortedDictionary <string, List <string> >();

            foreach (var pair in exportAssets)
            {
                var asset  = pair.Key;
                var bundle = pair.Value;

                List <string> assets;
                if (!buildMap.TryGetValue(bundle, out assets))
                {
                    assets = new List <string>();
                    buildMap.Add(bundle, assets);
                }
                assets.Add(asset);
            }
            foreach (var pair in buildMap)
            {
                var bundle = pair.Key;
                var assets = pair.Value;

                var bn = new BundleNode(bundle);
                bundleNodes.Add(bundle, bn);

                foreach (var asset in assets)
                {
                    var an = new AssetNode(asset, bn);
                    assetNodes.Add(asset, an);
                }
            }
            foreach (var an in assetNodes.Values)
            {
                var      bn   = an.bundleNode;
                string[] deps = AssetDatabase.GetDependencies(an.assetName, true);
                foreach (var dep in deps)
                {
                    AssetNode depN;
                    if (assetNodes.TryGetValue(dep, out depN))
                    {
                        an.AddDep(depN);
                    }
                    else
                    {
                        bn.AddWeight(dep);
                    }
                }
            }
        }
 public AssetNode(string assetName, BundleNode bundleNode)
 {
     this.assetName  = assetName;
     this.bundleNode = bundleNode;
     bundleNode.AddAsset(this);
 }