public static Event KeyboardEvent(string key)
{
Event event2 = new Event(0) {
type = EventType.KeyDown
};
if (!string.IsNullOrEmpty(key))
{
int startIndex = 0;
bool flag = false;
do
{
flag = true;
if (startIndex >= key.Length)
{
flag = false;
break;
}
char ch = key[startIndex];
switch (ch)
{
case '#':
event2.modifiers |= EventModifiers.Shift;
startIndex++;
break;
case '%':
event2.modifiers |= EventModifiers.Command;
startIndex++;
break;
case '&':
event2.modifiers |= EventModifiers.Alt;
startIndex++;
break;
default:
if (ch == '^')
{
event2.modifiers |= EventModifiers.Control;
startIndex++;
}
else
{
flag = false;
}
break;
}
}
while (flag);
string str = key.Substring(startIndex, key.Length - startIndex).ToLower();
if (str != null)
{
int num2;
if (<>f__switch$map0 == null)
{
Dictionary<string, int> dictionary = new Dictionary<string, int>(0x31) {
{
"[0]",
0
},
{
"[1]",
1
},
{
"[2]",
2
},
{
"[3]",
3
},
{
"[4]",
4
},
{
"[5]",
5
},
{
"[6]",
6
},
{
"[7]",
7
},
{
"[8]",
8
},
{
"[9]",
9
},
{
"[.]",
10
},
{
"[/]",
11
},
{
"[-]",
12
},
{
"[+]",
13
},
{
"[=]",
14
},
{
"[equals]",
15
},
{
"[enter]",
0x10
},
{
"up",
0x11
},
{
"down",
0x12
},
{
"left",
0x13
},
{
"right",
20
},
{
"insert",
0x15
},
{
"home",
0x16
},
{
"end",
0x17
},
{
"pgup",
0x18
},
{
"page up",
0x19
},
{
"pgdown",
0x1a
},
{
"page down",
0x1b
},
{
"backspace",
0x1c
},
{
"delete",
0x1d
},
{
"tab",
30
},
{
"f1",
0x1f
},
{
"f2",
0x20
},
{
"f3",
0x21
},
{
"f4",
0x22
},
{
"f5",
0x23
},
{
"f6",
0x24
},
{
"f7",
0x25
},
{
"f8",
0x26
},
{
"f9",
0x27
},
{
"f10",
40
},
{
"f11",
0x29
},
{
"f12",
0x2a
},
{
"f13",
0x2b
},
{
"f14",
0x2c
},
{
"f15",
0x2d
},
{
"[esc]",
0x2e
},
{
"return",
0x2f
},
{
"space",
0x30
}
};
<>f__switch$map0 = dictionary;
}
if (<>f__switch$map0.TryGetValue(str, out num2))
{
switch (num2)
{
case 0:
event2.character = '0';
event2.keyCode = KeyCode.Keypad0;
return event2;
case 1:
event2.character = '1';
event2.keyCode = KeyCode.Keypad1;
return event2;
case 2:
event2.character = '2';
event2.keyCode = KeyCode.Keypad2;
return event2;
case 3:
event2.character = '3';
event2.keyCode = KeyCode.Keypad3;
return event2;
case 4:
event2.character = '4';
event2.keyCode = KeyCode.Keypad4;
return event2;
case 5:
event2.character = '5';
event2.keyCode = KeyCode.Keypad5;
return event2;
case 6:
event2.character = '6';
event2.keyCode = KeyCode.Keypad6;
return event2;
case 7:
event2.character = '7';
event2.keyCode = KeyCode.Keypad7;
return event2;
case 8:
event2.character = '8';
event2.keyCode = KeyCode.Keypad8;
return event2;
case 9:
event2.character = '9';
event2.keyCode = KeyCode.Keypad9;
return event2;
case 10:
event2.character = '.';
event2.keyCode = KeyCode.KeypadPeriod;
return event2;
case 11:
event2.character = '/';
event2.keyCode = KeyCode.KeypadDivide;
return event2;
case 12:
event2.character = '-';
event2.keyCode = KeyCode.KeypadMinus;
return event2;
case 13:
event2.character = '+';
event2.keyCode = KeyCode.KeypadPlus;
return event2;
case 14:
event2.character = '=';
event2.keyCode = KeyCode.KeypadEquals;
return event2;
case 15:
event2.character = '=';
event2.keyCode = KeyCode.KeypadEquals;
return event2;
case 0x10:
event2.character = '\n';
event2.keyCode = KeyCode.KeypadEnter;
return event2;
case 0x11:
event2.keyCode = KeyCode.UpArrow;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x12:
event2.keyCode = KeyCode.DownArrow;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x13:
event2.keyCode = KeyCode.LeftArrow;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 20:
event2.keyCode = KeyCode.RightArrow;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x15:
event2.keyCode = KeyCode.Insert;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x16:
event2.keyCode = KeyCode.Home;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x17:
event2.keyCode = KeyCode.End;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x18:
event2.keyCode = KeyCode.PageDown;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x19:
event2.keyCode = KeyCode.PageUp;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x1a:
event2.keyCode = KeyCode.PageUp;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x1b:
event2.keyCode = KeyCode.PageDown;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x1c:
event2.keyCode = KeyCode.Backspace;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x1d:
event2.keyCode = KeyCode.Delete;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 30:
event2.keyCode = KeyCode.Tab;
return event2;
case 0x1f:
event2.keyCode = KeyCode.F1;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x20:
event2.keyCode = KeyCode.F2;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x21:
event2.keyCode = KeyCode.F3;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x22:
event2.keyCode = KeyCode.F4;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x23:
event2.keyCode = KeyCode.F5;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x24:
event2.keyCode = KeyCode.F6;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x25:
event2.keyCode = KeyCode.F7;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x26:
event2.keyCode = KeyCode.F8;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x27:
event2.keyCode = KeyCode.F9;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 40:
event2.keyCode = KeyCode.F10;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x29:
event2.keyCode = KeyCode.F11;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x2a:
event2.keyCode = KeyCode.F12;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x2b:
event2.keyCode = KeyCode.F13;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x2c:
event2.keyCode = KeyCode.F14;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x2d:
event2.keyCode = KeyCode.F15;
event2.modifiers |= EventModifiers.FunctionKey;
return event2;
case 0x2e:
event2.keyCode = KeyCode.Escape;
return event2;
case 0x2f:
event2.character = '\n';
event2.keyCode = KeyCode.Return;
event2.modifiers &= ~EventModifiers.FunctionKey;
return event2;
case 0x30:
event2.keyCode = KeyCode.Space;
event2.character = ' ';
event2.modifiers &= ~EventModifiers.FunctionKey;
return event2;
}
}
}
if (str.Length != 1)
{
try
{
event2.keyCode = (KeyCode) Enum.Parse(typeof(KeyCode), str, true);
}
catch (ArgumentException)
{
object[] args = new object[] { str };
Debug.LogError(UnityString.Format("Unable to find key name that matches '{0}'", args));
}
return event2;
}
event2.character = str.ToLower()[0];
event2.keyCode = (KeyCode) event2.character;
if (event2.modifiers != EventModifiers.None)
{
event2.character = '\0';
}
}
return event2;
}