Exemplo n.º 1
0
    public void OnEnable()
    {
        listVisible = true;

        editingVariable = false;

        showingExtraInfo = false;

        #region TitleStyle
        titleStyle.fontStyle      = FontStyle.Bold;
        titleStyle.fontSize       = 15;
        titleStyle.padding.top    = 5;
        titleStyle.padding.bottom = 5;
        titleStyle.alignment      = TextAnchor.UpperCenter;
        titleContent = new GUIContent("Variables");
        #endregion

        #region Style0
        style0.fontSize     = 13;
        style0.padding.left = 5;
        #endregion

        #region subTitleStyle
        subTitleStyle.fontSize     = 13;
        subTitleStyle.padding.left = 5;
        subTitleStyle.fontStyle    = FontStyle.Bold;
        #endregion

        #region ErrorStyle
        //errorStyle = style0;
        errorStyle.normal.textColor  = Color.red;
        errorStyle.active.textColor  = Color.red;
        errorStyle.hover.textColor   = Color.red;
        errorStyle.focused.textColor = Color.red;
        #endregion

        creatorInstance         = CreateInstance <CZ_Creator>();
        aquireInstance          = CreateInstance <CZ_Aquire>();
        VariableEditorInterface = this;
        serializedVarObj        = new SerializedObject(aquireInstance);
        aquireInstance.foldersToSearch.Clear();
        aquireInstance.folderToSearch = "Assets/Resources/Customization/Variables";
    }
    void OnGUI()
    {
        GUILayout.Label("Character Editor", titleStyle);
        if (characterInstance == null)
        {
            charOptions = aquireInstance.FindCharacterReturnString();
            if (charOptions.Length > 0)
            {
                selected = EditorGUILayout.Popup("Switch Character", selected, charOptions);
                if (selected > charOptions.Length - 1)
                {
                    selected = charOptions.Length - 1;
                }
                characterName = charOptions[selected];
                if (characterInstance == null)
                {
                    SetCharacterFromName();
                }
                if (characterInstance.characterName != characterName)
                {
                    SetCharacterFromName();
                }
            }
            else
            {
                creatingCharacter = true;
            }
        }
        GUILayout.Label("Currently viewing " + characterInstance.characterName, titleStyle);
        if (!creatingCharacter && !modifyingCharacter)
        {
            if (GUILayout.Button("Create New Character"))
            {
                creatingCharacter = true;
            }
            if (GUILayout.Button("Edit Character"))
            {
                modifyingCharacter = true;
            }

            charOptions = aquireInstance.FindCharacterReturnString();
            selected    = EditorGUILayout.Popup("Switch Character", selected, charOptions);
            if (selected > charOptions.Length - 1)
            {
                selected = charOptions.Length - 1;
            }
            characterName = charOptions[selected];
            if (characterInstance.characterName != characterName)
            {
                SetCharacterFromName();
            }

            characterInstance.prefab = (GameObject)EditorGUILayout.ObjectField("Prefab", characterInstance.prefab, typeof(GameObject), false);


            #region Variables

            #region Left Rect (Sections)
            Rect      leftRect    = new Rect(0, 150, Screen.width / 2 - 5, Screen.height);
            GUIStyle  leftStyle   = new GUIStyle();
            Texture2D leftTexture = new Texture2D((int)leftRect.width, (int)leftRect.height);
            Color[]   leftColors  = new Color[1];
            leftColors[0] = Color.grey;
            //leftTexture.SetPixels(leftColors);
            leftStyle.normal.background = leftTexture;
            GUI.Box(leftRect, "", leftStyle);
            GUILayout.BeginArea(leftRect);
            GUILayout.Label("Sections", titleStyle);
            //if(!CharacterSectionsMatch())
            //{
            //    AssignSections();
            //}
            if (characterInstance.sections.Count > 0)
            {
                for (int i = 0; i < characterInstance.sections.Count; i++)
                {
                    if (GUILayout.Button(characterInstance.sections[i].sectionName))
                    {
                        if (sectionEditor == null)
                        {
                            sectionEditor = CreateInstance <CZ_SectionEditorInterface>();
                        }
                        sectionEditor.tempSection    = characterInstance.sections[i];
                        sectionEditor.editingSection = true;
                        sectionEditor.Show();
                    }
                }
            }
            if (GUILayout.Button("Create New Section"))
            {
                if (sectionEditor == null)
                {
                    sectionEditor = CreateInstance <CZ_SectionEditorInterface>();
                }
                sectionEditor.characterInstance = characterInstance;
                sectionEditor.Show();
            }
            GUILayout.EndArea();
            #endregion

            #region Right Rect (Variables)
            Rect      rightRect    = new Rect(Screen.width / 2 + 5, 150, (Screen.width / 2) - 10, Screen.height);
            GUIStyle  rightStyle   = new GUIStyle();
            Texture2D rightTexture = new Texture2D((int)rightRect.width, (int)rightRect.height);
            Color[]   rightColors  = new Color[1];
            rightColors[0] = Color.grey;
            //rightTexture.SetPixels(rightColors);
            rightStyle.normal.background = rightTexture;
            GUI.Box(rightRect, "", rightStyle);
            GUILayout.BeginArea(rightRect);
            GUILayout.Label("Variables", titleStyle);
            if (characterInstance.variables.Count > 0)
            {
                for (int i = 0; i < characterInstance.variables.Count; i++)
                {
                    if (GUILayout.Button(characterInstance.variables[i].variableName))
                    {
                        if (variableEditor == null)
                        {
                            variableEditor = CreateInstance <CZ_VariableEditorInterface>();
                        }
                        variableEditor.charInstance    = characterInstance;
                        variableEditor.editingVariable = true;
                        variableEditor.tempVariable    = characterInstance.variables[i];
                        variableEditor.Show();
                    }
                }
            }
            if (GUILayout.Button("Create New Variable"))
            {
                if (variableEditor == null)
                {
                    variableEditor = CreateInstance <CZ_VariableEditorInterface>();
                }
                variableEditor.charInstance    = characterInstance;
                variableEditor.editingVariable = false;
                variableEditor.Show();
            }
            GUILayout.EndArea();
            #endregion

            if (creatorInstance.creating)
            {
            }
            #endregion
        }
        if (creatingCharacter)
        {
            characterInstance = CreateInstance <CZ_Character>();
            Name_Character();
            if (characterName != null)
            {
                if (characterName.Length > 0f)
                {
                    if (GUILayout.Button("Save Character"))
                    {
                        Save_Character();
                        creatingCharacter = false;
                    }
                }
            }
            if (GUILayout.Button("Cancel"))
            {
                creatingCharacter = false;
            }
        }
        if (modifyingCharacter)
        {
            if (GUILayout.Button("Save Character"))
            {
                AssetDatabase.SaveAssets();
                modifyingCharacter = false;
            }
            if (GUILayout.Button("Cancel"))
            {
                modifyingCharacter = false;
            }
        }
    }