- 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>();
-
- 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;
-
- }
-
- }