Example #1
0
        public void OnGUILayout()
        {
            if (IsShowScroll)
            {
                scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandHeight(false));
            }
            EditorGUILayout.BeginVertical();
            {
                foreach (var typeDrawProperty in typeDrawerProperties)
                {
                    EGUILayout.DrawHorizontalSpace(10);
                    EGUILayout.DrawBoxHeader(typeDrawProperty.type.Name, GUILayout.ExpandWidth(true));
                    EGUILayout.DrawHorizontalLine();
                    foreach (var property in typeDrawProperty.drawerProperties)
                    {
                        property.OnGUILayout();
                    }
                }
            }
            EditorGUILayout.EndVertical();

            if (IsShowScroll)
            {
                EditorGUILayout.EndScrollView();
            }

            if (drawerObject != null && typeof(UnityEngine.Object).IsAssignableFrom(drawerObject.GetType()))
            {
                if (GUI.changed)
                {
                    EditorUtility.SetDirty((UnityEngine.Object)drawerObject);
                }
            }
        }
Example #2
0
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            serializedObject.Update();
            {
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                {
                    registParamsRLProperty.OnGUILayout();
                }
                EditorGUILayout.EndVertical();

                if (deleteIndex >= 0)
                {
                    registParamGroupsProperty.RemoveElementAt(deleteIndex);
                    RefreshRegistParamGroups();
                    deleteIndex = -1;
                }

                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                {
                    EGUILayout.DrawBoxHeader("Regist Param", GUILayout.ExpandWidth(true));
                    Rect lastRect = GUILayoutUtility.GetLastRect();
                    Rect addBtnRect = new Rect(lastRect.x + lastRect.width - 60, lastRect.y, 60, lastRect.height);
                    if (GUI.Button(addBtnRect, "Add"))
                    {
                        registParamGroupsProperty.InsertArrayElementAtIndex(registParamGroupsProperty.arraySize);
                        RefreshRegistParamGroups();
                    }

                    for (int i = 0; i < registParamGroupsProperty.arraySize; ++i)
                    {
                        SerializedProperty lopaProperty = registParamGroupsProperty.GetArrayElementAtIndex(i);
                        EditorGUILayout.BeginHorizontal();
                        {
                            EditorGUILayout.BeginVertical();
                            {
                                SerializedProperty nameProperty = lopaProperty.FindPropertyRelative("name");
                                EditorGUILayout.PropertyField(nameProperty);
                                registParamGroupsRLProperties[i].OnGUILayout();
                            }
                            EditorGUILayout.EndVertical();

                            if (GUILayout.Button("Delete", GUILayout.Width(60)))
                            {
                                deleteIndex = i;
                            }
                        }
                        EditorGUILayout.EndHorizontal();
                        EGUILayout.DrawHorizontalLine();
                    }
                }
                EditorGUILayout.EndVertical();
            }
            serializedObject.ApplyModifiedProperties();
        }
Example #3
0
        protected override void OnDrawProperty(string label)
        {
            if (list == null)
            {
                list = DrawerProperty.GetValue <IList>();
            }

            EditorGUILayout.BeginVertical(EGUIStyles.BoxStyle);
            {
                EditorGUILayout.LabelField(GUIContent.none, EditorStyles.toolbar, GUILayout.ExpandWidth(true));

                Rect lastRect = GUILayoutUtility.GetLastRect();
                EditorGUI.LabelField(lastRect, label, EGUIStyles.BoldLabelStyle);

                Rect clearBtnRect = new Rect(lastRect.x + lastRect.width - 40, lastRect.y, 40, lastRect.height);
                if (GUI.Button(clearBtnRect, "C", EditorStyles.toolbarButton))
                {
                    DrawerProperty.ClearArrayElement();
                    InitList();
                }

                for (int i = 0; i < list.Count; ++i)
                {
                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.BeginVertical();
                        {
                            elementProperties[i].OnGUILayout();
                        }
                        EditorGUILayout.EndVertical();
                        EditorGUILayout.BeginVertical(GUILayout.Width(20));
                        {
                            if (GUILayout.Button("-", GUILayout.Width(20)))
                            {
                                DrawerProperty.RemoveArrayElementAtIndex(i);
                                InitList();
                            }
                        }
                        EditorGUILayout.EndVertical();
                    }
                    EditorGUILayout.EndHorizontal();

                    EGUILayout.DrawHorizontalLine();
                }
                Rect addBtnRect = GUILayoutUtility.GetRect(lastRect.width, 20);
                addBtnRect.x    += addBtnRect.width - 40;
                addBtnRect.width = 40;
                if (GUI.Button(addBtnRect, "+"))
                {
                    DrawerProperty.AddArrayElement();
                    InitList();
                }
            }
            EditorGUILayout.EndVertical();
        }
Example #4
0
        public override void OnInspectorGUI()
        {
            EditorGUILayout.BeginVertical(GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
            {
                base.OnInspectorGUI();

                EditorGUILayout.Space();
                EditorGUILayout.Space();

                if (GUILayout.Button("Execute", GUILayout.Height(40)))
                {
                    AssetAddressUtil.UpdateConfigByGroup(target as AssetAddressGroup);
                    EditorUtility.DisplayDialog("Finished", "Finished", "OK");
                }

                if (GUILayout.Button("Filter", GUILayout.Height(40)))
                {
                    List <string>     files = new List <string>();
                    AssetAddressGroup group = target as AssetAddressGroup;
                    foreach (var filter in group.filters)
                    {
                        files.AddRange(filter.Filter());
                    }

                    listViewer            = new EGUIListView <string>();
                    listViewer.Header     = "Asset List";
                    listViewer.OnDrawItem = (rect, index) =>
                    {
                        Rect indexRect = new Rect(rect.x, rect.y, 20, rect.height);
                        EditorGUI.PrefixLabel(indexRect, new GUIContent("" + index));
                        Rect itemRect = new Rect(rect.x + indexRect.width, rect.y, rect.width - indexRect.width, rect.height);
                        EditorGUI.LabelField(itemRect, listViewer.GetItem(index));
                    };
                    listViewer.AddItems(files.ToArray());
                }

                EGUILayout.DrawHorizontalLine();

                if (listViewer != null)
                {
                    Rect lastRect = EditorGUILayout.GetControlRect(false, 300, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
                    if (Event.current.type == EventType.Repaint)
                    {
                        listViewer.OnGUI(lastRect);
                    }
                }
            }
            EditorGUILayout.EndVertical();
        }
        public override void OnGUILayout()
        {
            SeparatorLineAttribute attr = GetAttr <SeparatorLineAttribute>();

            EGUILayout.DrawHorizontalLine(attr.Color, attr.Thickness, attr.Padding);
        }
Example #6
0
        protected override void OnDrawProperty(string label)
        {
            BitmapFontChar value = Property.GetValue <BitmapFontChar>();

            label = $"Font {(label ?? "")} ({value.fontName})";
            EditorGUI.BeginChangeCheck();
            {
                value.fontName  = EditorGUILayout.TextField("Font Name", value.fontName);
                value.charSpace = EditorGUILayout.IntField("Char Space", value.charSpace);
                EditorGUILayout.BeginVertical(EGUIStyles.BoxStyle);
                {
                    EditorGUILayout.LabelField(GUIContent.none, EditorStyles.toolbar, GUILayout.ExpandWidth(true));

                    Rect lastRect = GUILayoutUtility.GetLastRect();
                    EditorGUI.LabelField(lastRect, label, EGUIStyles.BoldLabelStyle);

                    Rect clearBtnRect = new Rect(lastRect.x + lastRect.width - 40, lastRect.y, 40, lastRect.height);
                    if (GUI.Button(clearBtnRect, "C", EditorStyles.toolbarButton))
                    {
                        //DrawerProperty.ClearArrayElement();
                        value.chars.Clear();
                        value.textures.Clear();
                    }

                    for (int i = 0; i < value.chars.Count; ++i)
                    {
                        EditorGUILayout.BeginHorizontal();
                        {
                            EditorGUILayout.BeginVertical();
                            {
                                char   c        = value.chars[i];
                                string charText = EditorGUILayout.TextField("Char", "" + c);
                                if (!string.IsNullOrEmpty(charText) && charText[0] != c)
                                {
                                    value.chars[i] = charText[0];
                                }
                                value.textures[i] = (Texture2D)EditorGUILayout.ObjectField("Texture", value.textures[i], typeof(Texture2D), false);
                            }
                            EditorGUILayout.EndVertical();

                            if (GUILayout.Button("-", GUILayout.Width(20)))
                            {
                                value.chars.RemoveAt(i);
                                value.textures.RemoveAt(i);
                            }
                        }
                        EditorGUILayout.EndHorizontal();

                        EGUILayout.DrawHorizontalLine();
                    }
                    Rect addBtnRect = GUILayoutUtility.GetRect(lastRect.width, 20);
                    addBtnRect.x    += addBtnRect.width - 40;
                    addBtnRect.width = 40;
                    if (GUI.Button(addBtnRect, "+"))
                    {
                        value.chars.Add('-');
                        value.textures.Add(null);
                    }
                }
                EditorGUILayout.EndVertical();
            }
            if (EditorGUI.EndChangeCheck())
            {
                Property.Value = value;
            }
        }
Example #7
0
        protected override void DrawInstance()
        {
            EditorGUILayout.BeginVertical(EGUIStyles.BoxStyle);
            {
                EGUILayout.DrawBoxHeader(Header, GUILayout.ExpandWidth(true));

                Rect lastRect     = GUILayoutUtility.GetLastRect();
                Rect clearBtnRect = new Rect(lastRect.x + lastRect.width - 40, lastRect.y, 40, lastRect.height);
                if (GUI.Button(clearBtnRect, "C", EditorStyles.toolbarButton))
                {
                    if (ClearAllItem != null)
                    {
                        ClearAllItem.Invoke();
                    }
                    else
                    {
                        Clear();
                    }
                }

                IList list = Target as IList;

                for (int i = 0; i < list.Count; ++i)
                {
                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.BeginVertical();
                        {
                            itemDrawers[i].OnGUILayout();
                        }
                        EditorGUILayout.EndVertical();

                        EditorGUILayout.BeginVertical(GUILayout.Width(20));
                        {
                            if (GUILayout.Button("-"))
                            {
                                if (DeleteItemAt != null)
                                {
                                    DeleteItemAt(i);
                                }
                                else
                                {
                                    RemoveItemAtIndex(i);
                                }
                            }
                        }
                        EditorGUILayout.EndVertical();
                    }
                    EditorGUILayout.EndHorizontal();

                    EGUILayout.DrawHorizontalLine();
                }

                Rect addBtnRect = GUILayoutUtility.GetRect(lastRect.width, 20);
                addBtnRect.x    += addBtnRect.width - 40;
                addBtnRect.width = 40;
                if (GUI.Button(addBtnRect, "+"))
                {
                    if (CreateNewItem != null)
                    {
                        CreateNewItem.Invoke();
                    }
                    else
                    {
                        AddNewItemAtLast();
                    }
                }
            }
            EditorGUILayout.EndVertical();
        }
Example #8
0
 public override void OnGUILayout()
 {
     EGUILayout.DrawHorizontalLine();
 }
 public void OnGUILayout()
 {
     EGUILayout.DrawHorizontalLine();
 }