Here is my extension method:
public static class ComponentExtensions
{
public static bool TryFindComponent<T>(this Component parentComponent, out T foundComponent)
{
foundComponent = parentComponent.GetComponent<T>();
return foundComponent != null;
}
}
I have an interface IMyInterface
.
At run-time, I want to iterate through all the types that implement IMyInterface
, and then invoke TryFindComponent<T>
until it returns true
.
IEnumerable<Type> grabbableTypes =
AppDomain.CurrentDomain
.GetAssemblies()
.SelectMany(assembly => assembly.GetTypes())
.Where(type => typeof(IMyInterface).IsAssignableFrom(type));
foreach (var type in grabbableTypes)
{
// Call TryFindComponent<T>:
// if true, do something to the object assigned to the "out" variable, and then return immediately;
// otherwise, continue
}
My question is: How can I pass all the types that implement IMyInterface
to TryFindComponent<T>
?
Aucun commentaire:
Enregistrer un commentaire