private List <string> GetRawAssetMods(AssetSnapshot snapshot, string srcDir) { List <string> mod = new List <string>(); foreach (string assetPath in EditorAssetUtil.ListAssetPaths(srcDir, FileType.All, true)) { if (assetPath.EndsWithIgnoreCase(".meta") || Path.GetFileName(assetPath).StartsWith(".", StringComparison.Ordinal)) { continue; } AssetDigest digest = snapshot.GetAssetDigest(assetPath); if (digest.IsModified()) { mod.Add(assetPath); } } return(mod); }
static bool IsDepModified(AssetSnapshot snapshot, AssetDigest digest) { string[] dependPaths = AssetDatabase.GetDependencies(new string[] { "Assets/" + digest.path }); bool modified = digest.IsModified(); // check dependencies midified for (int i = 0; i < dependPaths.Length; ++i) { dependPaths[i] = EditorAssetUtil.GetAssetRelativePath(dependPaths[i]); if (digest.path == dependPaths[i]) { continue; } AssetDigest depDigest = snapshot.GetDependDigest(dependPaths[i]); modified |= depDigest.IsModified(); if (depDigest.path.Is(FileType.Asset, FileType.Prefab)) { modified |= IsDepModified(snapshot, depDigest); } } return(modified); }