37 lines
1.2 KiB
C#
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};
|
|
}
|
|
}
|
|
} |