220 lines
14 KiB
C#
220 lines
14 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
namespace AxibugEmuOnline.Client.InputDevices
|
|
{
|
|
public partial class KeyBoard : InputDevice
|
|
{
|
|
public override string UniqueName => nameof(KeyBoard);
|
|
public override bool Online => true;
|
|
|
|
public KeyBoard(InputResolver resolver) : base(resolver) { }
|
|
|
|
protected override IEnumerable<KeyBase> DefineKeys()
|
|
{
|
|
var keys = s_keyboardKeys.Select(kc => new KeyboardKey(kc) as KeyBase);
|
|
return keys;
|
|
}
|
|
|
|
public class KeyboardKey : KeyBase
|
|
{
|
|
internal KeyCode m_listenKey;
|
|
|
|
public KeyboardKey(KeyCode listenKey)
|
|
{
|
|
m_listenKey = listenKey;
|
|
}
|
|
|
|
public override bool GetButtonDown()
|
|
{
|
|
return Input.GetKeyDown(m_listenKey);
|
|
}
|
|
|
|
public override bool GetButtonUp()
|
|
{
|
|
return Input.GetKeyUp(m_listenKey);
|
|
}
|
|
|
|
public override bool IsPressing()
|
|
{
|
|
return Input.GetKey(m_listenKey);
|
|
}
|
|
|
|
public override string KeyName => m_listenKey.ToString();
|
|
}
|
|
}
|
|
|
|
#region HardCodeForKeyboard
|
|
public partial class KeyBoard : InputDevice
|
|
{
|
|
static readonly List<KeyCode> s_keyboardKeys = new List<KeyCode>
|
|
{
|
|
// 字母键 A-Z
|
|
KeyCode.A, KeyCode.B, KeyCode.C, KeyCode.D, KeyCode.E, KeyCode.F, KeyCode.G,
|
|
KeyCode.H, KeyCode.I, KeyCode.J, KeyCode.K, KeyCode.L, KeyCode.M, KeyCode.N,
|
|
KeyCode.O, KeyCode.P, KeyCode.Q, KeyCode.R, KeyCode.S, KeyCode.T, KeyCode.U,
|
|
KeyCode.V, KeyCode.W, KeyCode.X, KeyCode.Y, KeyCode.Z,
|
|
|
|
// 数字键 0-9
|
|
KeyCode.Alpha0, KeyCode.Alpha1, KeyCode.Alpha2, KeyCode.Alpha3, KeyCode.Alpha4,
|
|
KeyCode.Alpha5, KeyCode.Alpha6, KeyCode.Alpha7, KeyCode.Alpha8, KeyCode.Alpha9,
|
|
|
|
// 功能键 F1-F15
|
|
KeyCode.F1, KeyCode.F2, KeyCode.F3, KeyCode.F4, KeyCode.F5, KeyCode.F6,
|
|
KeyCode.F7, KeyCode.F8, KeyCode.F9, KeyCode.F10, KeyCode.F11, KeyCode.F12,
|
|
KeyCode.F13, KeyCode.F14, KeyCode.F15,
|
|
|
|
// 方向键
|
|
KeyCode.UpArrow, KeyCode.DownArrow, KeyCode.LeftArrow, KeyCode.RightArrow,
|
|
|
|
// 控制键
|
|
KeyCode.Space, KeyCode.Return, KeyCode.Escape, KeyCode.Tab, KeyCode.Backspace,
|
|
KeyCode.CapsLock, KeyCode.LeftShift, KeyCode.RightShift, KeyCode.LeftControl,
|
|
KeyCode.RightControl, KeyCode.LeftAlt, KeyCode.RightAlt, KeyCode.LeftCommand,
|
|
KeyCode.RightCommand, KeyCode.Menu,
|
|
|
|
// 符号键
|
|
KeyCode.Comma, KeyCode.Period, KeyCode.Slash, KeyCode.BackQuote, KeyCode.Quote,
|
|
KeyCode.Semicolon, KeyCode.LeftBracket, KeyCode.RightBracket, KeyCode.Backslash,
|
|
KeyCode.Minus, KeyCode.Equals, KeyCode.Tilde,
|
|
|
|
// 小键盘
|
|
KeyCode.Keypad0, KeyCode.Keypad1, KeyCode.Keypad2, KeyCode.Keypad3, KeyCode.Keypad4,
|
|
KeyCode.Keypad5, KeyCode.Keypad6, KeyCode.Keypad7, KeyCode.Keypad8, KeyCode.Keypad9,
|
|
KeyCode.KeypadPeriod, KeyCode.KeypadDivide, KeyCode.KeypadMultiply,
|
|
KeyCode.KeypadMinus, KeyCode.KeypadPlus, KeyCode.KeypadEnter, KeyCode.Numlock,
|
|
|
|
// 其他标准键
|
|
KeyCode.Print, KeyCode.Insert, KeyCode.Delete, KeyCode.Home,
|
|
KeyCode.End, KeyCode.PageUp, KeyCode.PageDown, KeyCode.Pause, KeyCode.ScrollLock,
|
|
KeyCode.Clear
|
|
};
|
|
|
|
// 字母键 A-Z
|
|
public KeyboardKey A { get; private set; } = new KeyboardKey(KeyCode.A);
|
|
public KeyboardKey B { get; private set; } = new KeyboardKey(KeyCode.B);
|
|
public KeyboardKey C { get; private set; } = new KeyboardKey(KeyCode.C);
|
|
public KeyboardKey D { get; private set; } = new KeyboardKey(KeyCode.D);
|
|
public KeyboardKey E { get; private set; } = new KeyboardKey(KeyCode.E);
|
|
public KeyboardKey F { get; private set; } = new KeyboardKey(KeyCode.F);
|
|
public KeyboardKey G { get; private set; } = new KeyboardKey(KeyCode.G);
|
|
public KeyboardKey H { get; private set; } = new KeyboardKey(KeyCode.H);
|
|
public KeyboardKey I { get; private set; } = new KeyboardKey(KeyCode.I);
|
|
public KeyboardKey J { get; private set; } = new KeyboardKey(KeyCode.J);
|
|
public KeyboardKey K { get; private set; } = new KeyboardKey(KeyCode.K);
|
|
public KeyboardKey L { get; private set; } = new KeyboardKey(KeyCode.L);
|
|
public KeyboardKey M { get; private set; } = new KeyboardKey(KeyCode.M);
|
|
public KeyboardKey N { get; private set; } = new KeyboardKey(KeyCode.N);
|
|
public KeyboardKey O { get; private set; } = new KeyboardKey(KeyCode.O);
|
|
public KeyboardKey P { get; private set; } = new KeyboardKey(KeyCode.P);
|
|
public KeyboardKey Q { get; private set; } = new KeyboardKey(KeyCode.Q);
|
|
public KeyboardKey R { get; private set; } = new KeyboardKey(KeyCode.R);
|
|
public KeyboardKey S { get; private set; } = new KeyboardKey(KeyCode.S);
|
|
public KeyboardKey T { get; private set; } = new KeyboardKey(KeyCode.T);
|
|
public KeyboardKey U { get; private set; } = new KeyboardKey(KeyCode.U);
|
|
public KeyboardKey V { get; private set; } = new KeyboardKey(KeyCode.V);
|
|
public KeyboardKey W { get; private set; } = new KeyboardKey(KeyCode.W);
|
|
public KeyboardKey X { get; private set; } = new KeyboardKey(KeyCode.X);
|
|
public KeyboardKey Y { get; private set; } = new KeyboardKey(KeyCode.Y);
|
|
public KeyboardKey Z { get; private set; } = new KeyboardKey(KeyCode.Z);
|
|
|
|
// 数字键 0-9
|
|
public KeyboardKey Alpha0 { get; private set; } = new KeyboardKey(KeyCode.Alpha0);
|
|
public KeyboardKey Alpha1 { get; private set; } = new KeyboardKey(KeyCode.Alpha1);
|
|
public KeyboardKey Alpha2 { get; private set; } = new KeyboardKey(KeyCode.Alpha2);
|
|
public KeyboardKey Alpha3 { get; private set; } = new KeyboardKey(KeyCode.Alpha3);
|
|
public KeyboardKey Alpha4 { get; private set; } = new KeyboardKey(KeyCode.Alpha4);
|
|
public KeyboardKey Alpha5 { get; private set; } = new KeyboardKey(KeyCode.Alpha5);
|
|
public KeyboardKey Alpha6 { get; private set; } = new KeyboardKey(KeyCode.Alpha6);
|
|
public KeyboardKey Alpha7 { get; private set; } = new KeyboardKey(KeyCode.Alpha7);
|
|
public KeyboardKey Alpha8 { get; private set; } = new KeyboardKey(KeyCode.Alpha8);
|
|
public KeyboardKey Alpha9 { get; private set; } = new KeyboardKey(KeyCode.Alpha9);
|
|
|
|
// 功能键 F1-F15
|
|
public KeyboardKey F1 { get; private set; } = new KeyboardKey(KeyCode.F1);
|
|
public KeyboardKey F2 { get; private set; } = new KeyboardKey(KeyCode.F2);
|
|
public KeyboardKey F3 { get; private set; } = new KeyboardKey(KeyCode.F3);
|
|
public KeyboardKey F4 { get; private set; } = new KeyboardKey(KeyCode.F4);
|
|
public KeyboardKey F5 { get; private set; } = new KeyboardKey(KeyCode.F5);
|
|
public KeyboardKey F6 { get; private set; } = new KeyboardKey(KeyCode.F6);
|
|
public KeyboardKey F7 { get; private set; } = new KeyboardKey(KeyCode.F7);
|
|
public KeyboardKey F8 { get; private set; } = new KeyboardKey(KeyCode.F8);
|
|
public KeyboardKey F9 { get; private set; } = new KeyboardKey(KeyCode.F9);
|
|
public KeyboardKey F10 { get; private set; } = new KeyboardKey(KeyCode.F10);
|
|
public KeyboardKey F11 { get; private set; } = new KeyboardKey(KeyCode.F11);
|
|
public KeyboardKey F12 { get; private set; } = new KeyboardKey(KeyCode.F12);
|
|
public KeyboardKey F13 { get; private set; } = new KeyboardKey(KeyCode.F13);
|
|
public KeyboardKey F14 { get; private set; } = new KeyboardKey(KeyCode.F14);
|
|
public KeyboardKey F15 { get; private set; } = new KeyboardKey(KeyCode.F15);
|
|
|
|
// 方向键
|
|
public KeyboardKey UpArrow { get; private set; } = new KeyboardKey(KeyCode.UpArrow);
|
|
public KeyboardKey DownArrow { get; private set; } = new KeyboardKey(KeyCode.DownArrow);
|
|
public KeyboardKey LeftArrow { get; private set; } = new KeyboardKey(KeyCode.LeftArrow);
|
|
public KeyboardKey RightArrow { get; private set; } = new KeyboardKey(KeyCode.RightArrow);
|
|
|
|
// 控制键
|
|
public KeyboardKey Space { get; private set; } = new KeyboardKey(KeyCode.Space);
|
|
public KeyboardKey Return { get; private set; } = new KeyboardKey(KeyCode.Return);
|
|
public KeyboardKey Escape { get; private set; } = new KeyboardKey(KeyCode.Escape);
|
|
public KeyboardKey Tab { get; private set; } = new KeyboardKey(KeyCode.Tab);
|
|
public KeyboardKey Backspace { get; private set; } = new KeyboardKey(KeyCode.Backspace);
|
|
public KeyboardKey CapsLock { get; private set; } = new KeyboardKey(KeyCode.CapsLock);
|
|
public KeyboardKey LeftShift { get; private set; } = new KeyboardKey(KeyCode.LeftShift);
|
|
public KeyboardKey RightShift { get; private set; } = new KeyboardKey(KeyCode.RightShift);
|
|
public KeyboardKey LeftControl { get; private set; } = new KeyboardKey(KeyCode.LeftControl);
|
|
public KeyboardKey RightControl { get; private set; } = new KeyboardKey(KeyCode.RightControl);
|
|
public KeyboardKey LeftAlt { get; private set; } = new KeyboardKey(KeyCode.LeftAlt);
|
|
public KeyboardKey RightAlt { get; private set; } = new KeyboardKey(KeyCode.RightAlt);
|
|
public KeyboardKey LeftCommand { get; private set; } = new KeyboardKey(KeyCode.LeftCommand);
|
|
public KeyboardKey RightCommand { get; private set; } = new KeyboardKey(KeyCode.RightCommand);
|
|
public KeyboardKey Menu { get; private set; } = new KeyboardKey(KeyCode.Menu);
|
|
|
|
// 符号键
|
|
public KeyboardKey Comma { get; private set; } = new KeyboardKey(KeyCode.Comma);
|
|
public KeyboardKey Period { get; private set; } = new KeyboardKey(KeyCode.Period);
|
|
public KeyboardKey Slash { get; private set; } = new KeyboardKey(KeyCode.Slash);
|
|
public KeyboardKey BackQuote { get; private set; } = new KeyboardKey(KeyCode.BackQuote);
|
|
public KeyboardKey Quote { get; private set; } = new KeyboardKey(KeyCode.Quote);
|
|
public KeyboardKey Semicolon { get; private set; } = new KeyboardKey(KeyCode.Semicolon);
|
|
public KeyboardKey LeftBracket { get; private set; } = new KeyboardKey(KeyCode.LeftBracket);
|
|
public KeyboardKey RightBracket { get; private set; } = new KeyboardKey(KeyCode.RightBracket);
|
|
public KeyboardKey Backslash { get; private set; } = new KeyboardKey(KeyCode.Backslash);
|
|
public KeyboardKey Minus { get; private set; } = new KeyboardKey(KeyCode.Minus);
|
|
public KeyboardKey Equals_k { get; private set; } = new KeyboardKey(KeyCode.Equals);
|
|
public KeyboardKey Tilde { get; private set; } = new KeyboardKey(KeyCode.Tilde);
|
|
|
|
// 小键盘
|
|
public KeyboardKey Keypad0 { get; private set; } = new KeyboardKey(KeyCode.Keypad0);
|
|
public KeyboardKey Keypad1 { get; private set; } = new KeyboardKey(KeyCode.Keypad1);
|
|
public KeyboardKey Keypad2 { get; private set; } = new KeyboardKey(KeyCode.Keypad2);
|
|
public KeyboardKey Keypad3 { get; private set; } = new KeyboardKey(KeyCode.Keypad3);
|
|
public KeyboardKey Keypad4 { get; private set; } = new KeyboardKey(KeyCode.Keypad4);
|
|
public KeyboardKey Keypad5 { get; private set; } = new KeyboardKey(KeyCode.Keypad5);
|
|
public KeyboardKey Keypad6 { get; private set; } = new KeyboardKey(KeyCode.Keypad6);
|
|
public KeyboardKey Keypad7 { get; private set; } = new KeyboardKey(KeyCode.Keypad7);
|
|
public KeyboardKey Keypad8 { get; private set; } = new KeyboardKey(KeyCode.Keypad8);
|
|
public KeyboardKey Keypad9 { get; private set; } = new KeyboardKey(KeyCode.Keypad9);
|
|
public KeyboardKey KeypadPeriod { get; private set; } = new KeyboardKey(KeyCode.KeypadPeriod);
|
|
public KeyboardKey KeypadDivide { get; private set; } = new KeyboardKey(KeyCode.KeypadDivide);
|
|
public KeyboardKey KeypadMultiply { get; private set; } = new KeyboardKey(KeyCode.KeypadMultiply);
|
|
public KeyboardKey KeypadMinus { get; private set; } = new KeyboardKey(KeyCode.KeypadMinus);
|
|
public KeyboardKey KeypadPlus { get; private set; } = new KeyboardKey(KeyCode.KeypadPlus);
|
|
public KeyboardKey KeypadEnter { get; private set; } = new KeyboardKey(KeyCode.KeypadEnter);
|
|
public KeyboardKey Numlock { get; private set; } = new KeyboardKey(KeyCode.Numlock);
|
|
|
|
// 其他标准键
|
|
public KeyboardKey Print { get; private set; } = new KeyboardKey(KeyCode.Print);
|
|
public KeyboardKey Insert { get; private set; } = new KeyboardKey(KeyCode.Insert);
|
|
public KeyboardKey Delete { get; private set; } = new KeyboardKey(KeyCode.Delete);
|
|
public KeyboardKey Home { get; private set; } = new KeyboardKey(KeyCode.Home);
|
|
public KeyboardKey End { get; private set; } = new KeyboardKey(KeyCode.End);
|
|
public KeyboardKey PageUp { get; private set; } = new KeyboardKey(KeyCode.PageUp);
|
|
public KeyboardKey PageDown { get; private set; } = new KeyboardKey(KeyCode.PageDown);
|
|
public KeyboardKey Pause { get; private set; } = new KeyboardKey(KeyCode.Pause);
|
|
public KeyboardKey ScrollLock { get; private set; } = new KeyboardKey(KeyCode.ScrollLock);
|
|
public KeyboardKey Clear { get; private set; } = new KeyboardKey(KeyCode.Clear);
|
|
}
|
|
#endregion
|
|
} |