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