Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Editor / TransitionEditorWindow.cs
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEditor;
  5. using UnityEditor.UIElements;
  6. using UnityEngine.UIElements;
  7. public class TransitionEditorWindow : EditorWindow
  8. {
  9. Transition[] transitions;
  10. Dictionary<Transition,string> transitionFileNames = new Dictionary<Transition,string>();
  11. // Start is called before the first frame update
  12. void OnGUI()
  13. {
  14. if (transitions != null)
  15. {
  16. if (transitions.Length > 0)
  17. {
  18. for (int i = 0; i < transitions.Length; i++)
  19. {
  20. if (transitionFileNames.ContainsKey(transitions[i])) {
  21. GUILayout.Label("Transition - " + i);
  22. transitionFileNames[transitions[i]] = EditorGUILayout.TextField(new GUIContent("Transition Name"), transitionFileNames[transitions[i]]);
  23. if (GUILayout.Button("Rename"))
  24. {
  25. Rename(AssetDatabase.GetAssetPath(transitions[i]), transitionFileNames[transitions[i]]);
  26. }
  27. transitions[i].weight = EditorGUILayout.IntField(new GUIContent("Weight"), transitions[i].weight);
  28. transitions[i].action = (Action)EditorGUILayout.ObjectField("Action", transitions[i].action, typeof(Action), false);
  29. transitions[i].condition = (Condition)EditorGUILayout.ObjectField("Condition", transitions[i].condition, typeof(Condition), false);
  30. }
  31. }
  32. }
  33. else
  34. {
  35. EditorGUILayout.HelpBox(new GUIContent("No Transition added"));
  36. }
  37. }
  38. else
  39. {
  40. EditorGUILayout.HelpBox(new GUIContent("No Transition added"));
  41. }
  42. }
  43. public void Rename(string path,string title)
  44. {
  45. AssetDatabase.RenameAsset(path, title);
  46. AssetDatabase.Refresh();
  47. }
  48. public static void Init(Transition[] transition)
  49. {
  50. TransitionEditorWindow window = (TransitionEditorWindow)GetWindow<TransitionEditorWindow>("Transition Editor");
  51. window.transitions = transition;
  52. foreach (Transition tr in transition)
  53. {
  54. if (!window.transitionFileNames.ContainsKey(tr))
  55. {
  56. window.transitionFileNames.Add(tr, tr.name);
  57. } else
  58. {
  59. window.transitionFileNames[tr] = tr.name;
  60. }
  61. }
  62. window.Show();
  63. }
  64. private void Awake()
  65. {
  66. transitionFileNames.Clear();
  67. transitions = null;
  68. }
  69. }