/// <summary> /// 执行 /// </summary> /// <param name="searcherResult"></param> /// <returns></returns> private AssetFilterResult ExecuteFilter(AssetSearcherResult searcherResult) { AssetFilterResult filterResult = new AssetFilterResult(); for (int i = searcherResult.m_AssetPaths.Count - 1; i >= 0; --i) { string assetPath = searcherResult.m_AssetPaths[i]; if (IsMatchFilter(assetPath)) { if (m_RemoveMatchFilterItem) { searcherResult.m_AssetPaths.RemoveAt(i);//为下个二级筛选器剔除重复 } filterResult.m_AssetPaths.Add(assetPath); } } return(filterResult); }
public AssetOperationResult[] Execute(AssetSearcherResult searcherResult, AssetGroupResult groupResult) { AssetFilterResult filterResult = ExecuteFilter(searcherResult); List <AssetOperationResult> operationResults = new List <AssetOperationResult>(); List <AssetOperationResult> results = new List <AssetOperationResult>(); if (m_OperationComposeType == AssetComposeType.All) { //男的&& 大于25 && 上过学的 AssetOperationResult operationResult = null; foreach (var assetOperation in m_AssetOperations) { if (operationResult == null) { operationResult = assetOperation.Execute(filterResult, null); if (operationResult != null) { results.Add(operationResult); } } else { assetOperation.Execute(filterResult, operationResult); } } } else { foreach (var assetOperation in m_AssetOperations) { //男的|| 大于25 || 上过学的 AssetOperationResult operationResult = assetOperation.Execute(filterResult, null); if (operationResult != null) { results.Add(operationResult); } } } return(results.ToArray()); }
/// <summary> /// 执行 /// </summary> /// <param name="filterResult"></param> /// <param name="operationResult"></param> /// <returns></returns> public virtual AssetOperationResult Execute(AssetFilterResult filterResult, AssetOperationResult operationResult) { return(operationResult); }