コード例 #1
0
    private void OnEnable()
    {
        someDataListDrawer = new ReorderableDrawer(ReorderableType.WithOneLineProperties, someDataPropertiesNames);
        someDataListDrawer.SetUp(serializedObject, someDataListPropertyName);

        gameObjectsArrayDrawer = new ReorderableDrawer(ReorderableType.WithRemoveButtons, someDataPropertiesNames);
        gameObjectsArrayDrawer.SetUp(serializedObject, gameObjectsArrayPropertyName);
    }
コード例 #2
0
    private void OnEnable()
    {
        poolsDrawer  = new ReorderableDrawer(ReorderableType.WithRemoveButtons, false);
        groupsDrawer = new ReorderableDrawer(ReorderableType.WithRemoveButtons, false);

        poolsDrawer.SetUp(serializedObject, poolsPropertyName);
        groupsDrawer.SetUp(serializedObject, poolGroupsPropertyName);
    }
コード例 #3
0
        private void UpdateElementNames(SerializedProperty listProperty, SerializedProperty nameOverride)
        {
            ReorderableList list = ReorderableDrawer.GetList(listProperty, ReorderableDrawer.ARRAY_PROPERTY_NAME);

            if (list != null)
            {
                list.elementNameOverride = nameOverride.stringValue;
            }
        }
コード例 #4
0
    private void OnEnable()
    {
        arrayDrawer = new ReorderableDrawer(ReorderableType.WithRemoveButtons, false);
        // or use
        arrayDrawer = new ReorderableDrawer(ReorderableType.WithRemoveButtons, arrayElementPropertiesNames);
        // to draw ExamplePropertiesHolder[] (or List) with its nested properties on one line

        arrayDrawer.SetUp(serializedObject, arrayPropertyName);
    }
コード例 #5
0
        private float GetHeightOld(SerializedProperty parent, SerializedProperty property)
        {
            if (property.isArray && property.propertyType != SerializedPropertyType.String)
            {
                var list = ReorderableDrawer.GetList(parent, new ReorderableAttribute {
                    labels = false
                }, property.name.GetHashCode(), property.name);
                if (!listWithCallback.ContainsKey(list))
                {
                    list.drawElementCallback      += (r, e, l, s, f) => List_drawElementCallback(r, property, e, l, s, f);
                    list.getElementHeightCallback += (e) => List_getElementHeightCallback(property, e);
                    listWithCallback.Add(list, true);
                }
                return(list.GetHeight() + ELEMENT_HEIGHT_OFFSET * 2);
            }
            else if (property.hasVisibleChildren)
            {
                var height = ELEMENT_HEIGHT_OFFSET * 2;

                if (property.isExpanded)
                {
                    height += EditorGUI.GetPropertyHeight(property, GUIContent.none, true);
                    if (HasCustomPropertyDrawer(property) && level == 0)
                    {
                        height += 20;
                    }
                }
                else
                {
                    height += 20;
                }

                return(height);
            }
            else
            {
                var height = 0f;
                if (level == 0)
                {
                    height += 20 + ELEMENT_HEIGHT_OFFSET * 2;
                }
                if (property.isExpanded)
                {
                    height += EditorGUI.GetPropertyHeight(property, true);
                }

                return(height);
            }
        }
コード例 #6
0
        private float GetListPropertyHeight(SerializedProperty parent, SerializedProperty property)
        {
            var list = ReorderableDrawer.GetList(parent, new ReorderableAttribute {
                labels = false
            }, property.name.GetHashCode(), property.name);

            if (list == null)
            {
                Debug.Log(parent.propertyPath + " " + property.propertyPath);
                return(0f);
            }
            list.elementLabels = false;
            if (!listWithCallback.ContainsKey(list))
            {
                var originalP = property.Copy();
                list.drawElementCallback      += (r, e, l, s, f) => List_drawElementCallback(r, originalP, e, l, s, f);
                list.getElementHeightCallback += (e) => List_getElementHeightCallback(originalP, e);
                listWithCallback.Add(list, true);
            }
            return(list.GetHeight());
        }
コード例 #7
0
        private void DoListProperty(Rect rect, SerializedProperty parent, SerializedProperty property)
        {
            var list = ReorderableDrawer.GetList(parent, new ReorderableAttribute {
                labels = false
            }, property.name.GetHashCode(), property.name);

            if (list == null)
            {
                Debug.Log(parent.propertyPath + " " + property.propertyPath);
                return;
            }
            list.elementLabels = false;
            if (!listWithCallback.ContainsKey(list))
            {
                var originalP = property.Copy();
                list.drawElementCallback      += (r, e, l, s, f) => List_drawElementCallback(r, property, e, l, s, f);
                list.getElementHeightCallback += (e) => List_getElementHeightCallback(property, e);
                listWithCallback.Add(list, true);
            }
            list.DoList(rect, new GUIContent(property.displayName));
        }
コード例 #8
0
 private void OnEnable()
 {
     poolsDrawer = new ReorderableDrawer(ReorderableType.WithOneLineProperties,
                                         new string[] { "pool", "weight" });
     poolsDrawer.SetUp(serializedObject, arrayPropertyName);
 }
コード例 #9
0
 private void OnEnable()
 {
     arrayDrawer = new ReorderableDrawer(ReorderableType.WithRemoveButtons, false);
     arrayDrawer.SetUp(serializedObject, arrayPropertyName);
 }