blob: 90c8bfc9fdd756011342dd44605e1398bec9f390 (
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace ActionTool
{
public class ActionEditor : EditorWindow
{
[MenuItem("Custom/ActionTool/Open")]
static void OpenTools()
{
ActionManager.AnimationWindow = GetWindow<ActionEditor>();
}
private string m_SearchText;
public void OnEnable()
{
}
public void OnDisable()
{
}
public void OnGUI()
{
GUILayout.Space(5);
GUI_SelectUnit();
GUILayout.Space(5);
GUI_AnimationList();
GUILayout.Space(5);
}
private void GUI_SelectUnit()
{
if(ActionManager.CurrentUnit == null)
{
EditorGUILayout.HelpBox("选择角色prefab", MessageType.Warning);
}
GUILayout.BeginHorizontal();
GameObject selectObj = EditorGUILayout.ObjectField(ActionManager.CurrentUnit, typeof(GameObject), false, GUILayout.Width(position.width - 160)) as GameObject;
if(selectObj != ActionManager.CurrentUnit)
{
ActionManager.OnSelectObj(selectObj);
}
if (GUILayout.Button("Select", GUILayout.Width(70)))
{
}
if (GUILayout.Button("Reimport", GUILayout.Width(70)))
{
}
GUILayout.EndHorizontal();
}
private Vector2 m_AnimtionListScroll;
private void GUI_AnimationList()
{
if (!ActionManager.HasSelectObj())
return;
string unitName = ActionManager.GetUnitName();
EditorGUILayout.LabelField("Animation List");
m_SearchText = GUILayout.TextField(m_SearchText, "SearchTextField", GUILayout.Width(position.width - 20)).ToLower();
string animFolder = ActionManager.s_AnimFolder + unitName + "/";
string[] animfiles = Directory.GetFiles(animFolder);
if (animfiles != null && animfiles.Length > 0)
{
GUIStyle style = GUI.skin.GetStyle("Button");
TextAnchor prevAnchor = style.alignment;
TextClipping prevClipping = style.clipping;
bool prevRichText = style.richText;
style.alignment = TextAnchor.MiddleCenter;
style.clipping = TextClipping.Overflow;
style.richText = true;
m_AnimtionListScroll = EditorGUILayout.BeginScrollView(m_AnimtionListScroll);
for (int i = 0; i < animfiles.Length; ++i)
{
string file = animfiles[i];
if (file.Contains(".meta"))
continue;
string animName = Path.GetFileNameWithoutExtension(file);
bool show = m_SearchText == string.Empty || m_SearchText == "" || animName.ToLower().Contains(m_SearchText);
if (!show)
continue;
bool bChecked = ActionManager.CurrentAnimationName == animName;
bool check = GUILayout.Toggle(bChecked, animName, style, GUILayout.Height(15));
if (check && ActionManager.CurrentAnimationName != animName)
ActionManager.OnSelectAnimation(animName);
}
EditorGUILayout.EndScrollView();
style.alignment = prevAnchor;
style.clipping = prevClipping;
style.richText = prevRichText;
}
}
}
}
|