void GetNecessaryAssetBundleRecords( string assetBundleName, ref HashSet <string> checkedAssetBundleNames, ref List <AssetBundleRecord> checkedAssetBundleRecords) { checkedAssetBundleNames.Add(assetBundleName); AssetBundleRecord assetBundleRecord = this.AssetBundleRecordMap.Get(assetBundleName); if (assetBundleRecord == null) { return; } checkedAssetBundleRecords.Add(assetBundleRecord); foreach (var dependency in assetBundleRecord.DependencyNames) { if (checkedAssetBundleNames.Contains(dependency)) { continue; } GetNecessaryAssetBundleRecords( dependency, ref checkedAssetBundleNames, ref checkedAssetBundleRecords); } }
FixedList <AssetBundleRecord> GetNecessaryAssetBundleRecords(AssetEntryRecord assetEntryRecord) { var necessaryAssetBundleRecords = new List <AssetBundleRecord>(); if (assetEntryRecord == null) { return(new FixedList <AssetBundleRecord>(necessaryAssetBundleRecords)); } string assetBundleName = assetEntryRecord.AssetBundleName; AssetBundleRecord assetBundleRecord = this.AssetBundleRecordMap.Get(assetBundleName); if (assetBundleRecord == null) { return(new FixedList <AssetBundleRecord>(necessaryAssetBundleRecords)); } temporaryHashSet.Add(assetBundleName); GetNecessaryAssetBundleRecords( assetBundleName, ref temporaryHashSet, ref necessaryAssetBundleRecords); temporaryHashSet.Clear(); return(new FixedList <AssetBundleRecord>(necessaryAssetBundleRecords)); }