Weapons/PrefabLibrary.cs
/// <summary>
/// Utility for finding prefabs by component type.
/// </summary>
public static class PrefabLibrary
{
/// <summary>
/// Returns all registered PrefabFiles whose root object has a component of type T.
/// </summary>
public static IEnumerable<PrefabFile> GetPrefabsOfType<T>() where T : Component
{
foreach ( var prefab in ResourceLibrary.GetAll<PrefabFile>() )
{
var scene = SceneUtility.GetPrefabScene( prefab );
if ( scene == null ) continue;
if ( scene.Components.Get<T>( FindMode.EnabledInSelfAndDescendants ) != null )
yield return prefab;
}
}
}