示例#1
0
    void OnGUI()
    {
        UC_EditorUtility.OnGUI();

        if (invisibleButtonStyle == null)
        {
            invisibleButtonStyle = new GUIStyle("Button");

            invisibleButtonStyle.normal.background  = null;
            invisibleButtonStyle.focused.background = null;
            invisibleButtonStyle.hover.background   = null;
            invisibleButtonStyle.active.background  = null;
        }
        if (boxStyle == null)
        {
            boxStyle = new GUIStyle("Box");

            boxStyle.normal.textColor  = invisibleButtonStyle.normal.textColor;
            boxStyle.focused.textColor = invisibleButtonStyle.focused.textColor;
            boxStyle.hover.textColor   = invisibleButtonStyle.hover.textColor;
            boxStyle.active.textColor  = invisibleButtonStyle.active.textColor;
        }

        EditorGUILayout.BeginHorizontal();
        DrawBlueprintsList();
        DrawBlueprintsEditor();
        EditorGUILayout.EndHorizontal();
    }
示例#2
0
        public override void OnInspectorGUI()
        {
            if (UC_EditorUtility.DisplayScriptField(this))
            {
                return;
            }

            if (script == null)
            {
                script = (BaseSnapPoint)target;
            }

            script.receiveType = (BuildingType)EditorGUILayout.EnumMaskField("Receive :", script.receiveType);

            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
            }
        }
    public override void OnInspectorGUI()
    {
        if (script == null)
        {
            script = (CheckForBuildingCondition)target;
        }

        if (UC_EditorUtility.DisplayScriptField(this))
        {
            return;
        }

        script.buildings       = (BuildingType)EditorGUILayout.EnumMaskField("Target Buildings : ", script.buildings);
        script.distance        = EditorGUILayout.FloatField("Distance :", script.distance);
        script.detectionMethod = (DetectionType)EditorGUILayout.EnumPopup("Detection Method :", script.detectionMethod);

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
    }
示例#4
0
    void DrawBlueprintsEditor()
    {
        GUILayout.BeginVertical("Edit Blueprints", boxStyle, GUILayout.Width(300), GUILayout.ExpandHeight(true));

        GUILayout.Space(15);

        if (currentBlueprint != null)
        {
            BlueprintField tempField;

            currentBlueprint.blueprintName = EditorGUILayout.TextField("Blueprint name : ", currentBlueprint.blueprintName);

            GUILayout.Space(10);

            fieldsListScrollPos = EditorGUILayout.BeginScrollView(fieldsListScrollPos, boxStyle);

            for (int i = 0; i < currentBlueprint.fields.Count; i++)
            {
                tempField = currentBlueprint.fields[i];

                GUILayout.BeginVertical(boxStyle, GUILayout.Height(35));

                GUILayout.BeginHorizontal();

                GUI.enabled = tempField.data.Count > 0;
                if (GUILayout.Button(tempField.isOpen ? dropdown_down_icon : dropdown_right_icon, centeredStyle, GUILayout.Width(20), GUILayout.Height(20)))
                {
                    tempField.isOpen = !tempField.isOpen;
                }
                GUI.enabled = true;

                GUILayout.Label("Field : " + tempField.name, invisibleButtonStyle);

                if (GUILayout.Button("+", boxStyle, GUILayout.Width(25), GUILayout.Height(25)))
                {
                    BlueprintEditEditor.OpenWindow(this, false, tempField);
                }

                if (GUILayout.Button("-", boxStyle, GUILayout.Height(25), GUILayout.Width(25)))
                {
                    if (currentBlueprint != null)
                    {
                        if (EditorUtility.DisplayDialog("Delete", "Are you sure you want to delete this field? \nThis cannot be undone!", "Yes", "No"))
                        {
                            currentBlueprint.RemoveField(tempField);
                        }
                    }
                }

                GUILayout.EndHorizontal();

                if (tempField.isOpen)
                {
                    GUILayout.Space(5);

                    for (int b = 0; b < tempField.data.Count; b++)
                    {
                        currentChild = tempField.data[b];

                        GUILayout.BeginVertical(boxStyle, GUILayout.Height(35));
                        GUILayout.BeginHorizontal();

                        GUILayout.Label("Building : " + currentChild.name, invisibleButtonStyle);

                        if (GUILayout.Button("-", boxStyle, GUILayout.Height(20), GUILayout.Width(20)))
                        {
                            if (currentBlueprint != null)
                            {
                                if (EditorUtility.DisplayDialog("Delete", "Are you sure you want to delete this field? \nThis cannot be undone!", "Yes", "No"))
                                {
                                    tempField.data.Remove(currentChild);
                                }
                            }
                        }

                        GUI.enabled = currentChild.data != null && currentChild.data.Count != 0;

                        if (GUILayout.Button(new GUIContent("P", "Pack a gameObject data to this field"), boxStyle, GUILayout.Width(20), GUILayout.Height(20)))
                        {
                            if ((currentChild.data == null || currentChild.data.Count == 0) ||
                                (tempField.data.Count != 0 &&
                                 EditorUtility.DisplayDialog("Confirm Override", "Are u sure you want to override the existing data ? \nThis cannot be undone!", "Yes Continue", "No")))
                            {
                                lastFocusedBlueprint = tempField;

                                UC_EditorUtility.DisplayObjectField((GameObject go, int index) =>
                                {
                                    if (lastFocusedBlueprint != null)
                                    {
                                        lastFocusedBlueprint.data[index].Pack(go);
                                        currentBlueprint.Save();
                                    }
                                }, b, true);
                            }
                        }
                        if (GUILayout.Button(new GUIContent("Ex", "Export this child to a game object"), boxStyle, GUILayout.Width(20), GUILayout.Height(20)))
                        {
                            if (EditorUtility.DisplayDialog("Prefab Save", "Do u want to save changes to the prefab ? \nPlease note this cannot be undone!.", "Yes Continue", "No"))
                            {
                                lastFocusedBlueprint = tempField;

                                UC_EditorUtility.DisplayObjectField((GameObject go, int index) =>
                                {
                                    if (lastFocusedBlueprint != null)
                                    {
                                        lastFocusedBlueprint.data[index].UnPack(go, true);
                                    }
                                }, b, true);
                            }
                            else
                            {
                                lastFocusedBlueprint = tempField;

                                UC_EditorUtility.DisplayObjectField((GameObject go, int index) =>
                                {
                                    if (lastFocusedBlueprint != null)
                                    {
                                        lastFocusedBlueprint.data[index].UnPack(go, false);
                                    }
                                }, b, true);
                            }
                        }

                        GUI.enabled = true;

                        GUILayout.EndHorizontal();
                        GUILayout.EndVertical();
                    }
                }

                GUILayout.EndVertical();
            }

            EditorGUILayout.EndScrollView();

            GUILayout.BeginHorizontal();
            if (GUILayout.Button("+", invisibleButtonStyle, GUILayout.Height(20), GUILayout.Width(20)))
            {
                BlueprintEditEditor.OpenWindow(this, true, null);
            }

            GUILayout.EndHorizontal();

            if (GUILayout.Button("Apply Changes"))
            {
                if (currentBlueprint != null)
                {
                    currentBlueprint.Save();
                }
            }
        }
        else
        {
            GUILayout.Label("Please choose a blueprint in order to edit it.");
        }

        GUILayout.EndVertical();
    }