diff options
author | chai <chaifix@163.com> | 2021-09-15 12:50:26 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-09-15 12:50:26 +0800 |
commit | 98f31f197a126850a5878cd6e583ae6dbf64ab3d (patch) | |
tree | 207f726fb027c227d2fd58bd1bc340cb3a7eaf67 /Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs | |
parent | ad950c25abdf7f5a2f0428863d4035e9eb168fd5 (diff) |
*rename
Diffstat (limited to 'Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs')
-rw-r--r-- | Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs | 69 |
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); + } + } + } + } + } + +} |