summaryrefslogtreecommitdiff
path: root/Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs')
-rw-r--r--Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs69
1 files changed, 69 insertions, 0 deletions
diff --git a/Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs b/Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs
new file mode 100644
index 00000000..6b5cc57a
--- /dev/null
+++ b/Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs
@@ -0,0 +1,69 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+
+namespace ActionTool
+{
+
+
+ [CustomPropertyDrawer(typeof(ToggleTimeDictionary))]
+ public class ToggleTimeDictionaryDrawer : SerializableDictionaryPropertyDrawer { }
+
+ public class AnimationToggleEditor : EditorWindow
+ {
+
+ SerializedObject obj;
+
+ private void OnEnable()
+ {
+ titleContent = new GUIContent("Toggles");
+ maxSize = new Vector2(300, 2000);
+ minSize = new Vector2(300, 200);
+ }
+
+ private void OnDisable()
+ {
+ }
+
+ private void Update()
+ {
+ }
+
+ private void OnGUI()
+ {
+ AnimationData animData = ActionManager.animationData;
+ if (animData == null)
+ {
+ this.Close();
+ return;
+ }
+
+ if (obj == null || obj.targetObject != animData)
+ {
+ obj = new SerializedObject(animData);
+ }
+
+ var toggles = obj.FindProperty("toggles");
+ EditorGUILayout.PropertyField(toggles, true);
+
+ if(obj.ApplyModifiedProperties())
+ {
+ if (animData.toggles != null && animData.toggles.Count > 0)
+ {
+ List<EAnimationToogle> keys = new List<EAnimationToogle>(animData.toggles.Keys);
+ for(int i = 0; i < keys.Count; ++i)
+ {
+ Vector2 minMax = animData.toggles[keys[i]].fromTo;
+ minMax.x = Mathf.Clamp(minMax.x, 0, 1);
+ minMax.y = Mathf.Clamp(minMax.y, 0, 1);
+ minMax.x = Mathf.Clamp(minMax.x, 0, minMax.y);
+ minMax.y = Mathf.Clamp(minMax.y, minMax.x, 1);
+ animData.toggles[keys[i]] = new FromTo(minMax);
+ }
+ }
+ }
+ }
+ }
+
+}