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); }