// 最终资源 private static bool CollectAsset(BundleBuilderData data, BundleBuilderData.BundleInfo bundle, Object asset, string assetPath, PackagePlatform platform) { if (asset == null) { return(false); } var listData = asset as AssetListData; if (listData != null) { return(CollectAssetList(data, bundle, listData, platform)); } for (var splitIndex = 0; splitIndex < bundle.splits.Count; splitIndex++) { var split = bundle.splits[splitIndex]; var ruleMatch = false; if (split.rules.Count > 0) { for (var ruleIndex = 0; ruleIndex < split.rules.Count; ruleIndex++) { var rule = split.rules[ruleIndex]; if (rule.exclude) { if (IsRuleMatched(rule, asset, assetPath)) { break; } } else { if (IsRuleMatched(rule, asset, assetPath)) { ruleMatch = true; break; } } } } else { ruleMatch = true; } if (ruleMatch) { if (!ContainsAsset(data, asset) && split.AddObject(asset, platform)) { data.OnAssetCollect(asset, assetPath); } return(true); } } return(false); }