private HashSet <string> GetChangedAssetIdsForResolver(IAssetDependencyResolver resolver, string[] pathes, long[] timestamps, FileToAssetNode[] fileToAssetNodes) { HashSet <string> result = new HashSet <string>(); Dictionary <string, FileToAssetNode> list = RelationLookup.RelationLookupBuilder.ConvertToDictionary(fileToAssetNodes); string id = resolver.GetId(); string progressBarTitle = $"AssetDependencyCache: {id}"; float lastDisplayedPercentage = 0; for (int i = 0; i < pathes.Length; ++i) { float progressPercentage = (float)i / pathes.Length; if (progressPercentage - lastDisplayedPercentage > 0.01f) { EditorUtility.DisplayProgressBar(progressBarTitle, $"Finding changed assets {result.Count}", (float)i / pathes.Length); lastDisplayedPercentage = progressPercentage; } string path = pathes[i]; string guid = AssetDatabase.AssetPathToGUID(path); if (!resolver.IsGuidValid(guid)) { continue; } if (list.ContainsKey(guid)) { FileToAssetNode fileToAssetNode = list[guid]; foreach (AssetNode assetNode in fileToAssetNode.AssetNodes) { assetNode.Existing = true; } if (fileToAssetNode.GetResolverTimeStamp(id).TimeStamp != timestamps[i]) { NodeDependencyLookupUtility.AddAssetsToList(result, path); } } else { NodeDependencyLookupUtility.AddAssetsToList(result, path); } } return(result); }
private HashSet <string> GetChangedAssetIds(string[] pathes, long[] timestamps, FileToAssetsMapping[] fileToAssetMappings) { HashSet <string> result = new HashSet <string>(); Dictionary <string, FileToAssetsMapping> list = RelationLookup.RelationLookupBuilder.ConvertToDictionary(fileToAssetMappings); float lastDisplayedPercentage = 0; for (int i = 0; i < pathes.Length; ++i) { float progressPercentage = (float)i / pathes.Length; if (progressPercentage - lastDisplayedPercentage > 0.01f) { EditorUtility.DisplayProgressBar("AssetToFileDependencyCache", $"Finding changed assets {result.Count}", (float)i / pathes.Length); lastDisplayedPercentage = progressPercentage; } string path = pathes[i]; string guid = AssetDatabase.AssetPathToGUID(path); if (list.ContainsKey(guid)) { FileToAssetsMapping fileToAssetsMapping = list[guid]; fileToAssetsMapping.SetExisting(); long timeStamp = timestamps[i]; if (fileToAssetsMapping.Timestamp != timeStamp) { NodeDependencyLookupUtility.AddAssetsToList(result, path); } } else { NodeDependencyLookupUtility.AddAssetsToList(result, path); } } return(result); }