Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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));
        }