Пример #1
0
        public override void OnInspectorGUI()
        {
            pageArgsHolder = ((PageArgsHolder)serializedObject.targetObject).pageArgs;
            EditorGUI.BeginChangeCheck();
            pageArgsHolder.PageToCreate = (PagesEnum)EditorGUILayout.EnumPopup("Page To Create: ", pageArgsHolder.PageToCreate);
            if (EditorGUI.EndChangeCheck())
            {
                pageArgsHolder.ArgumentList.Clear();
                pageArgsHolder.ArgumentList = new List <PageArgs.ArgItemHolder> (PageNavEditorWindow.Settings.PagesCustomArguments[(int)pageArgsHolder.PageToCreate - 1].ArgumentList);
            }
            argumentsListFoldout = EditorGUILayout.Foldout(argumentsListFoldout, "Arguments List:");
            int removeIndex = -1;

            tempList = new List <PageArgs.ArgItemHolder> (pageArgsHolder.ArgumentList);
            if (argumentsListFoldout && pageArgsHolder.PageToCreate != PagesEnum.None)
            {
                for (int index = 0; index < pageArgsHolder.ArgumentList.Count; index++)
                {
                    removeIndex = DrawArgItem(pageArgsHolder.ArgumentList[index], index);
                    if (removeIndex >= 0)
                    {
                        tempList.Remove(pageArgsHolder.ArgumentList[index]);
                    }
                }
                if (GUILayout.Button("Add Argument"))
                {
                    var lala = new PageArgs.ArgItemHolder();
                    lala.name = "Argument " + pageArgsHolder.ArgumentList.Count;
                    tempList.Add(lala);
                }
                pageArgsHolder.ArgumentList = tempList;
            }
        }
Пример #2
0
        private int DrawArgItem(PageArgs.ArgItemHolder argItem, int index)
        {
            int returnIndex = -1;

            EditorGUI.BeginChangeCheck();
            EditorGUILayout.BeginVertical("box");
            EditorGUILayout.BeginHorizontal();
            argItem.name = EditorGUILayout.TextField(argItem.name);
            if (GUILayout.Button("Remove"))
            {
                tempList.Remove(argItem);
            }
            EditorGUILayout.EndHorizontal();
            argItem.type = (PageArgs.PageArgType)EditorGUILayout.EnumPopup("Type", argItem.type);

            switch (argItem.type)
            {
            case PageArgs.PageArgType.objectType:
                argItem.objectValue = (UnityEngine.Object)EditorGUILayout.ObjectField("Value", argItem.objectValue, typeof(UnityEngine.Object), true);
                break;

            case PageArgs.PageArgType.intType:
                argItem.intValue = EditorGUILayout.IntField("Value", argItem.intValue);
                break;

            case PageArgs.PageArgType.stringType:
                argItem.stringValue = EditorGUILayout.TextField("Value", argItem.stringValue);
                break;

            case PageArgs.PageArgType.boolType:
                argItem.boolValue = EditorGUILayout.Toggle("Value", argItem.boolValue);
                break;
            }

            EditorGUILayout.EndVertical();
            return(returnIndex);
        }