Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Editor / TransitionEditorWindow.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.UIElements;
using UnityEngine.UIElements;
public class TransitionEditorWindow : EditorWindow
{
    Transition[] transitions;
    Dictionary<Transition,string> transitionFileNames = new Dictionary<Transition,string>();
    // Start is called before the first frame update
    void OnGUI()
    {
        if (transitions != null)
        {
            if (transitions.Length > 0)
            {
                for (int i = 0; i < transitions.Length; i++)
                {
                    if (transitionFileNames.ContainsKey(transitions[i])) {
                        GUILayout.Label("Transition - " + i);

                        transitionFileNames[transitions[i]] = EditorGUILayout.TextField(new GUIContent("Transition Name"), transitionFileNames[transitions[i]]);
                        if (GUILayout.Button("Rename"))
                        {

                            Rename(AssetDatabase.GetAssetPath(transitions[i]), transitionFileNames[transitions[i]]);
                        }
                        transitions[i].weight = EditorGUILayout.IntField(new GUIContent("Weight"), transitions[i].weight);
                        transitions[i].action = (Action)EditorGUILayout.ObjectField("Action", transitions[i].action, typeof(Action), false);

                        transitions[i].condition = (Condition)EditorGUILayout.ObjectField("Condition", transitions[i].condition, typeof(Condition), false);
                    }
                    
                }
            }
            else
            {
                EditorGUILayout.HelpBox(new GUIContent("No Transition added"));
            }
        }
        else
        {
            EditorGUILayout.HelpBox(new GUIContent("No Transition added"));
        }

    }

    public void Rename(string path,string title)
    {
        AssetDatabase.RenameAsset(path, title);
        AssetDatabase.Refresh();
    }

    public static void Init(Transition[] transition)
    {
        TransitionEditorWindow window = (TransitionEditorWindow)GetWindow<TransitionEditorWindow>("Transition Editor");
        window.transitions = transition;
        foreach (Transition tr in transition)
        {
            if (!window.transitionFileNames.ContainsKey(tr))
            {
                window.transitionFileNames.Add(tr, tr.name);
            } else
            {
                window.transitionFileNames[tr] = tr.name;
            }
        }

        window.Show();
    }
    private void Awake()
    {
        transitionFileNames.Clear();
        transitions = null;
        
    }

   

}