UP-Viagg-io/Viagg-io/Assets/Packages/Asset Usage Finder/Editor/Data/FileDependencyFinder.cs

43 lines
1.3 KiB
C#
Raw Normal View History

using System;
using System.Diagnostics;
using System.Linq;
using UnityEditor;
using UnityEngine;
using Object = UnityEngine.Object;
using UnityEngine.Assertions;
namespace AssetUsageFinder {
[Serializable]
sealed class FileDependencyFinder : DependencyAbstractFinder {
public class Pair {
public string NicifiedPath;
public string Path;
}
public Pair[] ScenePaths;
public FileDependencyFinder(Object target) {
Asr.IsTrue(target, "Asset you're trying to search is corrupted");
Target = SearchTarget.CreateFile(target);
FindDependencies();
var path = AssetDatabase.GetAssetPath(Target.Target);
Title = path;
TabContent = new GUIContent {
text = target.name,
image = AssetDatabase.GetCachedIcon(path)
};
}
public override void FindDependencies() {
var files = DependencyFinderEngine.GetFilesThatReference(Target);
Dependencies = Group(files.Where(f => !(f.Target is SceneAsset)))
.OrderBy(t => t.LabelContent.text, StringComparer.Ordinal)
.ToArray();
}
public override DependencyAbstractFinder Nest(Object o) {
return new FileDependencyFinder(o) {Parent = this};
}
}
}