public void GetDependenciesForObject(MyTreeElement element, string assetPath, List <MyTreeElement> treeElements) { if (assetPath.Equals("")) { throw new System.Exception(assetPath + "\t不是可获取依赖资源"); } var assetOb = AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(assetPath); if (assetOb == null) { Debug.LogErrorFormat("Error Path {0}", assetPath); return; } if (assetOb.GetType() == typeof(MonoScript)) { return; } var guid = AssetDatabase.AssetPathToGUID(assetPath); var extenName = Path.GetExtension(assetPath); MyTreeElement child = new MyTreeElement(assetOb.name, element.depth + 1, CounterID++); var replacePath = assetPath.Replace('\\', '/'); child.Init(assetOb, replacePath); treeElements.Add(child); GetObjectDepencies(child, child.path, treeElements); }
public void GetDependenciesForPath(MyTreeElement element, string path, List <MyTreeElement> treeElements) { var localRelativePath = Snake.FileUtils.GetRelativePath(path); var dir = new DirectoryInfo(localRelativePath); MyTreeElement child = new MyTreeElement(dir.Name, element.depth + 1, CounterID++); var eObject = AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(localRelativePath); child.Init(eObject, localRelativePath); treeElements.Add(child); var subPaths = Directory.GetDirectories(localRelativePath); foreach (var itemPath in subPaths) { GetDependenciesForPath(child, itemPath.Replace('\\', '/'), treeElements); } var allAssets = Snake.FileUtils.GetRelativePath(localRelativePath); var ret = Directory.GetFiles(localRelativePath); Debug.Log(ret.Length); foreach (var assetPath in ret) { if (!assetPath.EndsWith(".meta")) { var relativePath = Snake.FileUtils.GetRelativePath(assetPath); GetDependenciesForObject(child, relativePath, treeElements); } } }
public void GetObjectDepencies(MyTreeElement element, string assetPath, List <MyTreeElement> treeElements) { string[] depens = AssetDatabase.GetDependencies(assetPath); for (int i = 0; i < depens.Length; i++) { if (!depens[i].Equals(assetPath)) { var tempDepen = AssetDatabase.GetDependencies(depens[i]); var depenAsset = AssetDatabase.LoadAssetAtPath(depens[i], typeof(UnityEngine.Object)); MyTreeElement child = new MyTreeElement(depenAsset.name, element.depth + 1, CounterID++); if (depenAsset.GetType() != typeof(MonoScript)) { child.Init(depenAsset, depens[i]); treeElements.Add(child); GetObjectDepencies(element, depens[i], treeElements); } } } }