예제 #1
0
        public virtual void EndDrawMember(MightySerializedField serializedField, T attribute,
                                          MightyDrawer.PropertyDrawCallback propertyDrawCallback, BasePropertyDrawerAttribute drawerAttribute = null)
        {
            var property = serializedField.Property;

            if (!property.IsCollection())
            {
                EndDraw(serializedField, attribute);
                return;
            }

            if (!property.isExpanded)
            {
                return;
            }

            MightyGUIUtilities.DrawArrayBody(property, index =>
            {
                BeginDrawElement(serializedField, index, attribute);
                propertyDrawCallback?.Invoke(serializedField, property.GetArrayElementAtIndex(index), drawerAttribute);
                EndDrawElement(serializedField, index, attribute);
            });

            EditorGUI.indentLevel--;

            EndDrawArray(serializedField, attribute);
        }
예제 #2
0
        protected virtual void BeginDrawMember(MightySerializedField serializedField, T attribute,
                                               MightyDrawer.PropertyDrawCallback propertyDrawCallback = null, BasePropertyDrawerAttribute drawerAttribute = null)
        {
            var property = serializedField.Property;

            if (!property.IsCollection())
            {
                BeginDraw(serializedField, attribute);

                propertyDrawCallback?.Invoke(serializedField, property, drawerAttribute);
                return;
            }

            BeginDrawArray(serializedField, attribute);
            BeginDrawHeader(serializedField, attribute);

            if (!MightyGUIUtilities.DrawFoldout(property))
            {
                EndDrawHeader(serializedField, attribute);
                EndDrawArray(serializedField, attribute);
                return;
            }

            EditorGUI.indentLevel++;
            MightyGUIUtilities.DrawArraySizeField(property);

            EndDrawHeader(serializedField, attribute);
        }
예제 #3
0
 public override void EndDrawMember(MightySerializedField serializedField, T attribute,
                                    MightyDrawer.PropertyDrawCallback propertyDrawCallback, BasePropertyDrawerAttribute drawerAttribute = null)
 {
     if (!serializedField.Property.IsCollection())
     {
         EndLayout(serializedField, attribute);
     }
 }
예제 #4
0
        protected override void BeginDrawMember(MightySerializedField serializedField, T attribute,
                                                MightyDrawer.PropertyDrawCallback propertyDrawCallback = null, BasePropertyDrawerAttribute drawerAttribute = null)
        {
            var property = serializedField.Property;

            if (property.IsCollection())
            {
                MightyGUIUtilities.DrawArray(property, index =>
                {
                    BeginDrawElement(serializedField, index, attribute);
                    propertyDrawCallback?.Invoke(serializedField, property, drawerAttribute);
                    EndDrawElement(serializedField, index, attribute);
                });
                return;
            }

            BeginLayout(serializedField, attribute);
            propertyDrawCallback?.Invoke(serializedField, property, drawerAttribute);
        }
예제 #5
0
 public void EndDrawMember(MightySerializedField serializedField, BaseArrayDecoratorAttribute baseAttribute,
                           MightyDrawer.PropertyDrawCallback propertyDrawCallback = null, BasePropertyDrawerAttribute drawerAttribute = null) =>
 EndDrawMember(serializedField, (T)baseAttribute, propertyDrawCallback, drawerAttribute);