summaryrefslogtreecommitdiff
path: root/Assets/Tools/ActionTool/Editor/AnimationToggleEditor.cs
blob: 6b5cc57a11da347954a325d29b76303f1f83c9af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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);
					}
				}
			}
		}
	}

}