コード例 #1
0
        /// <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);
        }