先建一個類
然后隨便寫一個方法
void Start () { var types = Assembly.GetCallingAssembly().GetTypes(); var aType = typeof(A); Debug.Log(aType.FullName); List<A> ass = new List<A>(); var typess = Assembly.GetCallingAssembly().GetTypes(); //獲取所有類型 foreach (var t in typess) { Type[] tfs = t.GetInterfaces(); //獲取該類型的接口 foreach (var tf in tfs) { if (tf.FullName == aType.FullName) //判斷全名,是否在一個命名空間下面 { A a = Activator.CreateInstance(t) as A; ass.Add(a); } } } Debug.Log(ass.Count); foreach (var item in ass) { item.a(); //調用所有繼承該接口的類中的方法 } }
然后在隨便建幾個類
namespace Dd { interface A { void a(); } } public class B : A { public void a() { Debug.Log("B...."); } } public class C: A { public void a() { Debug.Log("C....."); } } public class D : A { public void a() { Debug.Log("D......."); } }