//----------------------------------- FOR Validate&Draw ----------------------------------- //----------------------------------- FOR ShouldDrawField ----------------------------------- private APropertyDrawCondition GetPropertyDrawConditionForField(FieldInfo fieldInfo) { ADrawConditionAttribute[] drawConditionAttributes = (ADrawConditionAttribute[])fieldInfo.GetCustomAttributes(typeof(ADrawConditionAttribute), true); if (drawConditionAttributes.Length > 0) { //你的绘制条件 APropertyDrawCondition propertyDrawCondition = DPropertyDrawCondition.GetDrawConditionForAttribute(drawConditionAttributes[0].GetType()); return(propertyDrawCondition); } else { return(null); } }
//----------------------------------- FOR Validate&Draw ----------------------------------- private bool ShouldDrawField(FieldInfo fieldInfo) { APropertyDrawCondition drawCondition = GetPropertyDrawConditionForField(fieldInfo); if (drawCondition != null) { //这个字段满足绘制条件吗? bool canDrawProperty = drawCondition.CanDrawProperty(serializedPropertiesByFieldName[fieldInfo.Name]); if (!canDrawProperty) { return(false); } } HideInInspector[] hideInInspectorAttributes = (HideInInspector[])fieldInfo.GetCustomAttributes(typeof(HideInInspector), true); if (hideInInspectorAttributes.Length > 0) { return(false); //这个字段有HideInInspector特性吗?(他是内置特性) } return(true); }