AxibugEmuOnline/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Keyboard.cs

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
}