Beispiel #1
0
        private void OnEnable()
        {
            _scriptableObjectTypes = FReflectionUtility.GetSubTypesOf <SScriptableObject>().Where(x => FReflectionUtility.HasDefinedAttribute(x, FScriptableObjectWizardAttribute.CLASS_TYPE)).ToArray();

            _scriptableObjectNames = _scriptableObjectTypes.Select(x => FReflectionUtility.GetAttributeProperty <string>(x, FScriptableObjectWizardAttribute.CLASS_TYPE, nameof(FScriptableObjectWizardAttribute.Name))).ToArray();
        }
Beispiel #2
0
 private void CacheTypeNames()
 {
     if (fieldInfo.IsDefined(FSubclassFilterAttribute.CLASS_TYPE))
     {
         Attribute          attribute        = fieldInfo.GetCustomAttribute(FSubclassFilterAttribute.CLASS_TYPE);
         PropertyInfo       typePropertyInfo = attribute.GetType().GetProperty(nameof(FSubclassFilterAttribute.Type));
         Type               typeFilter       = (Type)typePropertyInfo.GetValue(attribute);
         IEnumerable <Type> subtypes         = FReflectionUtility.GetSubTypesOf(typeFilter);
         _typeFullNames = subtypes.Select(x => x.FullName).ToArray();
         _displaynames  = subtypes.Select(x => FReflectionUtility.HasDefinedAttribute(x, FNameAttribute.CLASS_TYPE) ? FReflectionUtility.GetAttributeProperty <string>(x, FNameAttribute.CLASS_TYPE, nameof(FNameAttribute.Name)) : x.FullName).ToArray();
     }
 }