public void GetDependenciesForId(string assetId, List <Dependency> dependencies) { Progress.IncreaseProgress(); string fileId = NodeDependencyLookupUtility.GetGuidFromAssetId(assetId); dependencies.Add(new Dependency(fileId, ResolvedType, "File", new [] { new PathSegment("File", PathSegmentType.Property) })); }
private void GetDependenciesForAssetsInResolver(HashSet <string> changedAssets, IAssetDependencyResolver resolver, Dictionary <string, FileToAssetNode> resultList, ProgressBase progress) { string resolverId = resolver.GetId(); foreach (string assetId in changedAssets) { string fileId = NodeDependencyLookupUtility.GetGuidFromAssetId(assetId); if (!resultList.ContainsKey(fileId)) { resultList.Add(fileId, new FileToAssetNode { FileId = fileId }); } FileToAssetNode fileToAssetNode = resultList[fileId]; AssetNode assetNode = fileToAssetNode.GetAssetNode(assetId); List <Dependency> dependencies = new List <Dependency>(); resolver.GetDependenciesForId(assetId, dependencies); AssetNode.ResolverData resolverData = assetNode.GetResolverData(resolverId); resolverData.Dependencies = dependencies; fileToAssetNode.GetResolverTimeStamp(resolverId).TimeStamp = NodeDependencyLookupUtility.GetTimeStampForFileId(fileId); } }
private void AddPrefabAsDependency(string id, Object obj, Stack <PathSegment> stack) { Object correspondingObjectFromSource = PrefabUtility.GetCorrespondingObjectFromSource(obj); string assetId = NodeDependencyLookupUtility.GetAssetIdForAsset(correspondingObjectFromSource); string assetPath = AssetDatabase.GetAssetPath(correspondingObjectFromSource); string guid = AssetDatabase.AssetPathToGUID(assetPath); if (guid != NodeDependencyLookupUtility.GetGuidFromAssetId(id)) { AddDependency(id, new Dependency(assetId, ConnectionType, NodeType, stack.ToArray())); } }
public void Initialize(AssetDependencyCache cache, HashSet <string> changedAssets, ProgressBase progress) { TraverserSubSystem.Clear(); foreach (string assetId in changedAssets) { string guid = NodeDependencyLookupUtility.GetGuidFromAssetId(assetId); if (!_inValidGuids.Contains(guid)) { cache._hierarchyTraverser.AddAssetId(assetId, TraverserSubSystem); } } }
public override Result GetDependency(Type objType, object obj, SerializedProperty property, string propertyPath, SerializedPropertyType type, Stack <PathSegment> stack) { if (type != SerializedPropertyType.ObjectReference) { return(null); } var value = property.objectReferenceValue; if (value == null) { return(null); } string assetPath = AssetDatabase.GetAssetPath(value); if (string.IsNullOrEmpty(assetPath)) { return(null); } if (ExcludedProperties.Contains(propertyPath)) { return(null); } if (ExcludedDependencies.Contains(Path.GetFileName(assetPath))) { return(null); } string assetId = NodeDependencyLookupUtility.GetAssetIdForAsset(value); string guid = NodeDependencyLookupUtility.GetGuidFromAssetId(assetId); if (!(guid.StartsWith("0000000") || value is ScriptableObject || AssetDatabase.IsSubAsset(value) || AssetDatabase.IsMainAsset(value))) { return(null); } return(new Result { Id = assetId, ConnectionType = ConnectionType, NodeType = NodeType }); }
private void GetDependenciesForAssetsInResolver(HashSet <string> changedAssets, IAssetToFileDependencyResolver resolver, Dictionary <string, FileToAssetsMapping> resultList, ProgressBase progress) { foreach (string assetId in changedAssets) { string fileId = NodeDependencyLookupUtility.GetGuidFromAssetId(assetId); if (!resultList.ContainsKey(fileId)) { resultList.Add(fileId, new FileToAssetsMapping { FileId = fileId }); } FileToAssetsMapping fileToAssetsMapping = resultList[fileId]; FileToAssetMappingNode fileToAssetMappingNode = fileToAssetsMapping.GetFileNode(assetId); fileToAssetMappingNode.Dependencies.Clear(); resolver.GetDependenciesForId(assetId, fileToAssetMappingNode.Dependencies); fileToAssetsMapping.Timestamp = NodeDependencyLookupUtility.GetTimeStampForFileId(fileId); } }