Skip to content

Commit f50b928

Browse files
authored
fix: added the finished keycode menu + tabs
finished the drawer tabs
2 parents 3d2125a + 424c6cd commit f50b928

File tree

5 files changed

+105
-18
lines changed

5 files changed

+105
-18
lines changed

Editor/DrawerMenu.cs

Lines changed: 43 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,67 @@
99
namespace BigasTools.Editor{
1010
public class DrawerMenu : EditorWindow
1111
{
12+
int tab;
1213
Vector2 scrollPos;
14+
static Drawer[] drawers;
1315
static DrawerOption[] options;
14-
public static void ShowWindow(DrawerOption[] _keys) {
16+
static DrawerOption[] mostUsedKeys;
17+
static DrawerOption[] numbers;
18+
public static void ShowWindow(Drawer[] drawer, DrawerOption[] _keys, DrawerOption[] _mostUsedKeys, DrawerOption[] _numbers) {
1519
var window = GetWindow<DrawerMenu>();
1620
window.titleContent = new GUIContent("Drawer menu");
1721
window.Show();
1822
window.minSize = new Vector2(400,180);
1923
options = _keys;
24+
drawers = drawer;
25+
mostUsedKeys = _mostUsedKeys;
26+
numbers = _numbers;
2027
}
2128

2229
void OnGUI()
2330
{
24-
GUILayout.BeginVertical(EditorStyles.toolbar);
25-
scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(400), GUILayout.Height(500));
26-
for (int i = 0; i < options.Length; i++)
31+
var s = new string[drawers.Length];
32+
for (int i = 0; i < drawers.Length; i++)
2733
{
28-
options[i].Refresh(i);
29-
if(GUILayout.Button(options[i].name, EditorStyles.toolbarButton)){
30-
options[i].onGUI();
31-
options[i].Update();
32-
};
33-
GUILayout.FlexibleSpace();
34+
s[i] = drawers[i].name;
3435
}
36+
tab = GUILayout.Toolbar(tab, s);
37+
Draw(tab);
38+
}
39+
40+
void Draw(int r){
41+
var groups = new List<DrawerOption[]>();
42+
groups.Add(options);
43+
groups.Add(mostUsedKeys);
44+
groups.Add(numbers);
45+
46+
var o = groups[r];
47+
48+
GUILayout.BeginVertical(EditorStyles.toolbar);
49+
scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(400), GUILayout.Height(500));
50+
for (int i = 0; i < o.Length; i++)
51+
{
52+
o[i].Refresh(i);
53+
if(GUILayout.Button(o[i].name, EditorStyles.toolbarButton)){
54+
o[i].onGUI();
55+
o[i].Update();
56+
};
57+
GUILayout.FlexibleSpace();
58+
}
3559
GUILayout.EndVertical();
3660
GUILayout.EndScrollView();
3761
}
3862
}
3963
[System.Serializable]
64+
public class Drawer{
65+
public Drawer(string name)
66+
{
67+
this.name = name;
68+
}
69+
70+
public string name {set;get;}
71+
}
72+
[System.Serializable]
4073
public abstract class DrawerOption{
4174
public string name {set;get;}
4275

Editor/InputProfileDrawer.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ public override void OnGUI(Rect position, SerializedProperty property, GUIConten
1414
EditorGUI.BeginProperty(position, label, property);
1515

1616
var title = new Rect(position.x, position.y, position.width - 50, position.height);
17-
var name = new Rect(position.x, position.y, position.width - 350, position.height);
18-
var key = new Rect(position.x - 25, position.y, position.width, position.height);
19-
var joyKey = new Rect(position.x + 180, position.y, position.width - 350, position.height);
17+
var name = new Rect(position.x, position.y, 75, position.height);
18+
var key = new Rect(position.x + 85, position.y, position.width, position.height);
19+
var joyKey = new Rect(position.x + 170, position.y, 75, position.height);
2020

2121
//EditorGUI.PrefixLabel(title, GUIUtility.GetControlID(FocusType.Passive), label);
2222

Editor/KeyCodeDrawer.cs

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ public override void OnGUI(Rect position, SerializedProperty property, GUIConten
4040
string keyName = Enum.GetName(typeof(KeyCode), propKey);
4141

4242
// Offset the button from the label.
43-
position.x += 120f;
4443
position.width = 80f;
4544

4645
// Display the button that activates the selection window.
@@ -89,7 +88,45 @@ private void selectKey()
8988
// Get all the keycodes
9089
var keyCodes = Enum.GetValues(typeof(KeyCode));
9190
var keys = new KeyCode[keyCodes.Length];
91+
var mostUsedKeys = new KeyCode[21]{
92+
KeyCode.Backspace,
93+
KeyCode.Tab,
94+
KeyCode.Pause,
95+
KeyCode.Escape,
96+
KeyCode.Space,
97+
KeyCode.A,
98+
KeyCode.S,
99+
KeyCode.D,
100+
KeyCode.W,
101+
KeyCode.E,
102+
KeyCode.I,
103+
KeyCode.T,
104+
KeyCode.F,
105+
KeyCode.M,
106+
KeyCode.V,
107+
KeyCode.B,
108+
KeyCode.Mouse0,
109+
KeyCode.Mouse1,
110+
KeyCode.LeftShift,
111+
KeyCode.LeftAlt,
112+
KeyCode.LeftControl
113+
};
114+
var numberKeys = new KeyCode[10]{
115+
KeyCode.Alpha0,
116+
KeyCode.Alpha1,
117+
KeyCode.Alpha2,
118+
KeyCode.Alpha3,
119+
KeyCode.Alpha4,
120+
KeyCode.Alpha5,
121+
KeyCode.Alpha6,
122+
KeyCode.Alpha7,
123+
KeyCode.Alpha8,
124+
KeyCode.Alpha9,
125+
};
92126
var drawer = new DrawerOption[keyCodes.Length];
127+
var drawerUsedKeys = new DrawerOption[mostUsedKeys.Length];
128+
var drawerNumbers = new DrawerOption[numberKeys.Length];
129+
93130

94131

95132

@@ -102,7 +139,24 @@ private void selectKey()
102139
keys[i++] = k;
103140
}
104141

105-
DrawerMenu.ShowWindow(drawer);
142+
int ii = 0;
143+
foreach(KeyCode k in mostUsedKeys){
144+
drawerUsedKeys[ii] = new DrawerOption<KeyCode>(()=>mostUsedKeys, k.ToString(), key => {
145+
146+
}, p, k);
147+
ii++;
148+
}
149+
150+
int iii = 0;
151+
foreach(KeyCode k in numberKeys){
152+
drawerNumbers[iii] = new DrawerOption<KeyCode>(()=>numberKeys, k.ToString(), key => {
153+
154+
}, p, k);
155+
iii++;
156+
}
157+
158+
159+
DrawerMenu.ShowWindow(new Drawer[]{new Drawer("All Keys"), new Drawer("Most Used"), new Drawer("Numbers")}, drawer, drawerUsedKeys, drawerNumbers);
106160

107161
// Display the selection window to pick a keycode.
108162
/*SelectionWindow.Show(new Tab<KeyCode>(

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ The tools i usually use for all of my game development with unity.
1414
- A powerful timer class
1515
- Controllers for audio and resources
1616
- A powerful state controller
17-
- Tag system
17+
- Tags system
1818
- A pool system
1919

2020
# Doc

Samples/EntityExamples.unity

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ MonoBehaviour:
638638
inputData:
639639
profile:
640640
- inputName: Interaction
641-
inputKey: 105
641+
inputKey: 51
642642
joystickKey: 0
643643
- inputName: Pause
644644
inputKey: 279
@@ -659,7 +659,7 @@ MonoBehaviour:
659659
inputKey: 27
660660
joystickKey: 7
661661
- inputName: Example4
662-
inputKey: 27
662+
inputKey: 12
663663
joystickKey: 8
664664
- inputName: Example5
665665
inputKey: 27

0 commit comments

Comments
 (0)