private void Save_Character()
    {
        string path = "Assets/Resources/Customization/Characters/" + characterName + ".asset";

        characterInstance = CreateInstance <CZ_Character>();
        characterInstance.characterName = characterName;
        AssetDatabase.CreateAsset(characterInstance, AssetDatabase.GenerateUniqueAssetPath(path));
    }
Exemple #2
0
 public string[] Aquire_SectionsFromCharacter(CZ_Character character)
 {
     string[] tempString = new string[character.sections.Count];
     for (int i = 0; i < character.sections.Count; i++)
     {
         tempString[i] = character.sections[i].sectionName;
     }
     return(tempString);
 }
Exemple #3
0
    public void Find_Character(CZ_Creator czCreatorInstance, CZ_Character returnCharacter)
    {
        string path = "Assets/Resources/Customization/Characters/";

        string[] filters = new string[2];
        filters[0] = "Asset Files";
        filters[1] = "asset";
        string fileLocation = UnityEditor.EditorUtility.OpenFilePanelWithFilters("Load Character", path, filters);
        string relativepath = "Assets" + fileLocation.Substring(Application.dataPath.Length);

        //Debug.Log(relativepath);
        characterInstance = (CZ_Character)UnityEditor.AssetDatabase.LoadAssetAtPath(relativepath, typeof(CZ_Character));
        czCreatorInstance.characterInstance = characterInstance;
        returnCharacter = characterInstance;
    }
Exemple #4
0
    public void Create_Section(CZ_Section section, CZ_Character character)
    {
        string     path = UnityEditor.AssetDatabase.GetAssetPath(character);
        CZ_Section tSec = CreateInstance <CZ_Section>();

        tSec           = section;
        tSec.character = character;

        tSec.name = "z" + tSec.sectionName;
        UnityEditor.AssetDatabase.AddObjectToAsset(tSec, path);
        UnityEditor.AssetDatabase.ImportAsset(UnityEditor.AssetDatabase.GetAssetPath(tSec));
        tSec.hideFlags = HideFlags.HideInInspector;
        character.sections.Add(tSec);
        //UnityEditor.AssetDatabase.Refresh();
        //Debug.Log(tempSection.name);
    }
Exemple #5
0
 public string[] Aquire_SectionsReturnStrings(CZ_Character parentCharacter)
 {
     object[] objs      = UnityEditor.AssetDatabase.LoadAllAssetsAtPath(UnityEditor.AssetDatabase.GetAssetPath(parentCharacter));
     string[] tempArray = new string[objs.Length];
     if (objs.Length <= 0)
     {
         return(new string[0]);
     }
     for (int i = 0; i < objs.Length; i++)
     {
         if (objs[i].GetType() == typeof(CZ_Section))
         {
             if (!sections.Contains((CZ_Section)objs[i]))
             {
                 sections.Add((CZ_Section)objs[i]);
             }
             tempArray[i] = UnityEditor.AssetDatabase.LoadAllAssetsAtPath(UnityEditor.AssetDatabase.GetAssetPath(parentCharacter))[i].name;
         }
     }
     return(tempArray);
 }
    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;
            }
        }
    }
    private void SetCharacterFromName()
    {
        string path = "Assets/Resources/Customization/Characters/" + characterName + ".asset";

        characterInstance = (CZ_Character)AssetDatabase.LoadAssetAtPath(path, typeof(CZ_Character));
    }
 private void Find_Character()
 {
     aquireInstance.Find_Character(creatorInstance, characterInstance);
     characterInstance = aquireInstance.characterInstance;
 }