/// <summary> /// Used by designer /// </summary> /// <param name="componentType"></param> public static List <Type> GetSkinClasses(Type componentType) { List <Type> list = new List <Type>(); //Debug.Log("componentType: " + componentType); if (!componentType.IsSubclassOf(typeof(SkinnableComponent))) { //Debug.LogError("Component is not a subclass of SkinnableComponent: " + componentType); return(list); } List <Type> types = GuiReflector.GetAllLoadedTypes(); foreach (Type type in types) { if (!type.IsClass) { continue; } if (!type.IsSubclassOf(typeof(Skin))) { continue; } var componentTypeSpecifiedInAttribute = SkinUtil.GetHostComponent(type); if (componentTypeSpecifiedInAttribute == componentType) { list.Add(type); } } return(list); }