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

37 lines
1.2 KiB
C#

using System;
using System.Linq;
using UnityEditor;
using UnityEngine;
using Object = UnityEngine.Object;
namespace AssetUsageFinder {
[Serializable]
sealed class InSceneDependencyFinder : DependencyAbstractFinder {
[SerializeField] string _scenePath;
public InSceneDependencyFinder(Object target, string scenePath) {
Target = SearchTarget.CreateScene(target, scenePath);
_scenePath = scenePath;
Title = scenePath;
var name = target is Component ? target.GetType().Name : target.name;
TabContent = new GUIContent {
text = name,
image = AssetPreview.GetMiniTypeThumbnail(Target.Target.GetType()) ?? AssetPreview.GetMiniThumbnail(Target.Target)
};
FindDependencies();
}
public override void FindDependencies() {
var dependenciesInScene = DependencyFinderEngine.GetDependenciesInScene(Target);
Dependencies = Group(dependenciesInScene).ToArray();
}
public override DependencyAbstractFinder Nest(Object o) {
return new InSceneDependencyFinder(o, _scenePath) {Parent = this};
}
}
}