From 50e3a30f3178edbada54b1f4ec0ac4c573c5e8a2 Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Thu, 27 Mar 2025 15:02:41 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E6=89=80=E6=9C=89=E6=8A=BD=E8=B1=A1?=
 =?UTF-8?q?=E5=B1=82Input=E7=9A=84=E7=B1=BB=E5=8A=A0=E4=B8=8A=E5=90=8E?=
 =?UTF-8?q?=E7=BC=80,D=E4=BB=A3=E8=A1=A8=E8=AE=BE=E5=A4=87,C=E4=BB=A3?=
 =?UTF-8?q?=E8=A1=A8=E6=8E=A7=E4=BB=B6,=E9=81=BF=E5=85=8D=E5=92=8CInputSys?=
 =?UTF-8?q?tem=E4=B8=AD=E7=9A=84=E8=AE=BE=E5=A4=87=E9=87=8D=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../KeyMapperSetting/EssgeeKeyBinding.cs      | 14 ++---
 .../KeyMapperSetting/KeyMapperSetting.cs      | 40 +++++++-------
 .../KeyMapperSetting/MAMEKeyBinding.cs        |  4 +-
 .../KeyMapperSetting/NesKeyBinding.cs         |  4 +-
 .../KeyMapperSetting/XMBKeyBinding.cs         |  4 +-
 .../InputDevicesManager/Devices/GamePad_D.cs  | 34 ++++++++++++
 .../Devices/GamePad_D.cs.meta                 |  2 +
 .../Devices/InputControls.meta                |  8 +++
 .../InputControls/{Button.cs => Button_C.cs}  |  4 +-
 .../Devices/InputControls/Button_C.cs.meta    |  2 +
 .../{InputControl.cs => InputControl_D.cs}    |  6 +--
 .../InputControls/InputControl_D.cs.meta      |  2 +
 .../InputControls/{Stick.cs => Stick_C.cs}    |  8 +--
 .../Devices/InputControls/Stick_C.cs.meta     |  2 +
 .../{InputDevice.cs => InputDevice_D.cs}      | 10 ++--
 .../Devices/InputDevice_D.cs.meta             |  2 +
 .../Devices/{Keyboard.cs => Keyboard_D.cs}    | 14 ++---
 .../{Keyboard.cs.meta => Keyboard_D.cs.meta}  |  0
 .../Devices/PSVController.cs                  | 54 -------------------
 .../Devices/PSVController_D.cs                | 54 +++++++++++++++++++
 ...roller.cs.meta => PSVController_D.cs.meta} |  0
 .../InputDevicesManager.cs                    | 16 +++---
 .../InputResolver/InputResolver.cs            | 20 +++----
 .../InputResolver/InputSystemResolver.cs      | 35 ++++++------
 .../InputResolver/PSVResolver.cs              | 18 +++----
 25 files changed, 203 insertions(+), 154 deletions(-)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/GamePad_D.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/GamePad_D.cs.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls.meta
 rename AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/{Button.cs => Button_C.cs} (67%)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button_C.cs.meta
 rename AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/{InputControl.cs => InputControl_D.cs} (89%)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl_D.cs.meta
 rename AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/{Stick.cs => Stick_C.cs} (83%)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick_C.cs.meta
 rename AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/{InputDevice.cs => InputDevice_D.cs} (79%)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice_D.cs.meta
 rename AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/{Keyboard.cs => Keyboard_D.cs} (94%)
 rename AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/{Keyboard.cs.meta => Keyboard_D.cs.meta} (100%)
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController_D.cs
 rename AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/{PSVController.cs.meta => PSVController_D.cs.meta} (100%)

diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/EssgeeKeyBinding.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/EssgeeKeyBinding.cs
index 5423edc2..9b7d9bdf 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/EssgeeKeyBinding.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/EssgeeKeyBinding.cs
@@ -22,9 +22,9 @@ namespace AxibugEmuOnline.Client.Settings
 
     public abstract class EssgeeKeyBinding : EmuCoreControllerKeyBinding<EssgeeSingleKey>
     {
-        protected override void OnRegistDevices(InputDevice device, BindingPage binding)
+        protected override void OnRegistDevices(InputDevice_D device, BindingPage binding)
         {
-            if (device is KeyBoard keyboard)
+            if (device is Keyboard_D keyboard)
             {
                 switch (binding.ControllerIndex)
                 {
@@ -54,7 +54,7 @@ namespace AxibugEmuOnline.Client.Settings
                         break;
                 }
             }
-            else if (device is PSVController psvCon && binding.ControllerIndex == 0)
+            else if (device is PSVController_D psvCon && binding.ControllerIndex == 0)
             {
                 binding.SetBinding(EssgeeSingleKey.OPTION_1, psvCon.Start, 0);
                 binding.SetBinding(EssgeeSingleKey.OPTION_2, psvCon.Select, 0);
@@ -98,9 +98,9 @@ namespace AxibugEmuOnline.Client.Settings
         public override RomPlatformType Platform => RomPlatformType.GameBoyColor;
         public override int ControllerCount => 1;
 
-        protected override void OnRegistDevices(InputDevice device, BindingPage binding)
+        protected override void OnRegistDevices(InputDevice_D device, BindingPage binding)
         {
-            if (device is KeyBoard keyboard)
+            if (device is Keyboard_D keyboard)
             {
                 switch (binding.ControllerIndex)
                 {
@@ -125,9 +125,9 @@ namespace AxibugEmuOnline.Client.Settings
         public override RomPlatformType Platform => RomPlatformType.GameBoy;
         public override int ControllerCount => 1;
 
-        protected override void OnRegistDevices(InputDevice device, BindingPage binding)
+        protected override void OnRegistDevices(InputDevice_D device, BindingPage binding)
         {
-            if (device is KeyBoard keyboard)
+            if (device is Keyboard_D keyboard)
             {
                 switch (binding.ControllerIndex)
                 {
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/KeyMapperSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/KeyMapperSetting.cs
index bfb5a1ba..112e0c1c 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/KeyMapperSetting.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/KeyMapperSetting.cs
@@ -70,7 +70,7 @@ namespace AxibugEmuOnline.Client.Settings
                 m_bindingPages.Add(new BindingPage(i, this));
             }
 
-            var keyboard = App.input.GetDevice<KeyBoard>();
+            var keyboard = App.input.GetDevice<Keyboard_D>();
             if (keyboard != null)
             {
                 foreach (var binding in m_bindingPages)
@@ -79,7 +79,7 @@ namespace AxibugEmuOnline.Client.Settings
                 }
             }
 
-            var psvController = App.input.GetDevice<PSVController>();
+            var psvController = App.input.GetDevice<PSVController_D>();
             if (psvController != null)
             {
                 foreach (var binding in m_bindingPages)
@@ -92,9 +92,9 @@ namespace AxibugEmuOnline.Client.Settings
             App.input.OnDeviceConnected += InputDevicesMgr_OnDeviceConnected;
         }
 
-        private void InputDevicesMgr_OnDeviceConnected(InputDevice connectDevice)
+        private void InputDevicesMgr_OnDeviceConnected(InputDevice_D connectDevice)
         {
-            if (connectDevice is KeyBoard)
+            if (connectDevice is Keyboard_D)
             {
                 foreach (var binding in m_bindingPages)
                 {
@@ -103,15 +103,15 @@ namespace AxibugEmuOnline.Client.Settings
             }
         }
 
-        private void InputDevicesMgr_OnDeviceLost(InputDevice lostDevice)
+        private void InputDevicesMgr_OnDeviceLost(InputDevice_D lostDevice)
         {
             foreach (var binding in m_bindingPages)
             {
                 binding.UnregistInputDevice(lostDevice);
             }
-            if (lostDevice is KeyBoard) //键盘丢失,立即查找还存在的键盘并建立连接
+            if (lostDevice is Keyboard_D) //键盘丢失,立即查找还存在的键盘并建立连接
             {
-                var anotherKeyboard = App.input.GetDevice<KeyBoard>();
+                var anotherKeyboard = App.input.GetDevice<Keyboard_D>();
                 if (anotherKeyboard != null)
                 {
                     foreach (var binding in m_bindingPages)
@@ -127,11 +127,11 @@ namespace AxibugEmuOnline.Client.Settings
             return Enum.GetValues(typeof(T)).Cast<T>();
         }
 
-        internal void RaiseDeviceRegist(InputDevice device, BindingPage binding)
+        internal void RaiseDeviceRegist(InputDevice_D device, BindingPage binding)
         {
             OnRegistDevices(device, binding);
         }
-        protected abstract void OnRegistDevices(InputDevice device, BindingPage binding);
+        protected abstract void OnRegistDevices(InputDevice_D device, BindingPage binding);
 
         public bool Start(T emuControl, int controllerIndex)
         {
@@ -232,12 +232,12 @@ namespace AxibugEmuOnline.Client.Settings
             else return totalFloat / totalControl;
         }
 
-        public class MapSetting : Dictionary<T, List<InputControl>> { }
+        public class MapSetting : Dictionary<T, List<InputControl_D>> { }
 
         public class BindingPage
         {
-            Dictionary<Type, InputDevice> m_registedDevices = new Dictionary<Type, InputDevice>();
-            Dictionary<InputDevice, MapSetting> m_mapSetting = new Dictionary<InputDevice, MapSetting>();
+            Dictionary<Type, InputDevice_D> m_registedDevices = new Dictionary<Type, InputDevice_D>();
+            Dictionary<InputDevice_D, MapSetting> m_mapSetting = new Dictionary<InputDevice_D, MapSetting>();
 
             public int ControllerIndex { get; }
             public EmuCoreControllerKeyBinding<T> Host { get; }
@@ -248,7 +248,7 @@ namespace AxibugEmuOnline.Client.Settings
                 Host = host;
             }
 
-            internal bool IsRegisted<DEVICE>() where DEVICE : InputDevice
+            internal bool IsRegisted<DEVICE>() where DEVICE : InputDevice_D
             {
                 var type = typeof(T);
                 return IsRegisted(type);
@@ -258,7 +258,7 @@ namespace AxibugEmuOnline.Client.Settings
                 return m_registedDevices.ContainsKey(deviceType);
             }
 
-            internal void RegistInputDevice(InputDevice device)
+            internal void RegistInputDevice(InputDevice_D device)
             {
                 var type = device.GetType();
                 if (IsRegisted(type)) return;
@@ -268,7 +268,7 @@ namespace AxibugEmuOnline.Client.Settings
                 Host.RaiseDeviceRegist(device, this);
             }
 
-            internal void UnregistInputDevice(InputDevice device)
+            internal void UnregistInputDevice(InputDevice_D device)
             {
                 var type = device.GetType();
                 if (!IsRegisted(type)) return;
@@ -277,7 +277,7 @@ namespace AxibugEmuOnline.Client.Settings
                 m_mapSetting.Remove(device);
             }
 
-            public void SetBinding(T emuBtn, InputControl key, int settingSlot)
+            public void SetBinding(T emuBtn, InputControl_D key, int settingSlot)
             {
                 var device = key.Device;
                 m_registedDevices.TryGetValue(device.GetType(), out var inputDevice);
@@ -287,7 +287,7 @@ namespace AxibugEmuOnline.Client.Settings
                 var setting = m_mapSetting[inputDevice];
                 if (!setting.TryGetValue(emuBtn, out var settingList))
                 {
-                    settingList = new List<InputControl>();
+                    settingList = new List<InputControl_D>();
                     setting[emuBtn] = settingList;
                 }
 
@@ -297,7 +297,7 @@ namespace AxibugEmuOnline.Client.Settings
                 settingList[settingSlot] = key;
             }
 
-            public InputControl GetBinding(T emuBtn, InputDevice device, int settingSlot)
+            public InputControl_D GetBinding(T emuBtn, InputDevice_D device, int settingSlot)
             {
                 m_mapSetting.TryGetValue(device, out var mapSetting);
                 if (mapSetting == null) return null;
@@ -308,8 +308,8 @@ namespace AxibugEmuOnline.Client.Settings
                 return settingList[settingSlot];
             }
 
-            private List<InputControl> m_caches = new List<InputControl>();
-            public IEnumerable<InputControl> GetBinding(T emuBtn)
+            private List<InputControl_D> m_caches = new List<InputControl_D>();
+            public IEnumerable<InputControl_D> GetBinding(T emuBtn)
             {
                 m_caches.Clear();
 
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/MAMEKeyBinding.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/MAMEKeyBinding.cs
index 5fe780ab..8631ad58 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/MAMEKeyBinding.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/MAMEKeyBinding.cs
@@ -23,9 +23,9 @@ namespace AxibugEmuOnline.Client.Settings
     {
         public override int ControllerCount => 4;
 
-        protected override void OnRegistDevices(InputDevice device, BindingPage binding)
+        protected override void OnRegistDevices(InputDevice_D device, BindingPage binding)
         {
-            if (device is KeyBoard keyboard)
+            if (device is Keyboard_D keyboard)
             {
                 switch (binding.ControllerIndex)
                 {
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/NesKeyBinding.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/NesKeyBinding.cs
index 6c9d83ab..3ab0e60e 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/NesKeyBinding.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/NesKeyBinding.cs
@@ -9,9 +9,9 @@ namespace AxibugEmuOnline.Client.Settings
         public override RomPlatformType Platform => RomPlatformType.Nes;
         public override int ControllerCount => 4;
 
-        protected override void OnRegistDevices(InputDevice device, BindingPage binding)
+        protected override void OnRegistDevices(InputDevice_D device, BindingPage binding)
         {
-            if (device is KeyBoard keyboard)
+            if (device is Keyboard_D keyboard)
             {
                 switch (binding.ControllerIndex)
                 {
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/XMBKeyBinding.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/XMBKeyBinding.cs
index aa8e06fc..caec9054 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/XMBKeyBinding.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/KeyMapperSetting/XMBKeyBinding.cs
@@ -9,9 +9,9 @@ namespace AxibugEmuOnline.Client
         public override RomPlatformType Platform => RomPlatformType.Invalid;
         public override int ControllerCount => 2;
 
-        protected override void OnRegistDevices(InputDevice device, BindingPage binding)
+        protected override void OnRegistDevices(InputDevice_D device, BindingPage binding)
         {
-            if (device is KeyBoard keyboard)
+            if (device is Keyboard_D keyboard)
             {
                 switch (binding.ControllerIndex)
                 {
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/GamePad_D.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/GamePad_D.cs
new file mode 100644
index 00000000..6bb15a6d
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/GamePad_D.cs
@@ -0,0 +1,34 @@
+using System.Collections.Generic;
+
+namespace AxibugEmuOnline.Client.InputDevices
+{
+    /// <summary>
+    /// 通用游戏控制器
+    /// </summary>
+    public class GamePad_D : InputDevice_D
+    {
+        public Button_C Up { get; private set; }
+        public Button_C Down { get; private set; }
+        public Button_C Left { get; private set; }
+        public Button_C Right { get; private set; }
+        public Button_C Option { get; private set; }
+        public Button_C Start { get; private set; }
+        public Button_C North { get; private set; }
+        public Button_C South { get; private set; }
+        public Button_C West { get; private set; }
+        public Button_C East { get; private set; }
+        public Button_C LeftShoulder { get; private set; }
+        public Button_C RightShoulder { get; private set; }
+        public Button_C LeftTrigger { get; private set; }
+        public Button_C RightTrigger { get; private set; }
+
+        public GamePad_D(InputResolver resolver) : base(resolver) { }
+
+        protected override List<InputControl_D> DefineControls()
+        {
+            throw new System.NotImplementedException();
+        }
+
+
+    }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/GamePad_D.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/GamePad_D.cs.meta
new file mode 100644
index 00000000..2ce54c6c
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/GamePad_D.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: adda9a9ea56de5742bc1b00ce85ce9e5
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls.meta
new file mode 100644
index 00000000..cac0156c
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e098c1dc313c2d746b3a0c6a7f1a69f0
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button_C.cs
similarity index 67%
rename from AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button.cs
rename to AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button_C.cs
index cc166856..521d34ec 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button_C.cs
@@ -3,11 +3,11 @@
     /// <summary>
     /// 按键类型的输入控件
     /// </summary>
-    public class Button : InputControl
+    public class Button_C : InputControl_D
     {
         string m_controlName;
 
-        public Button(InputDevice device, string controlName) : base(device)
+        public Button_C(InputDevice_D device, string controlName) : base(device)
         {
             m_controlName = controlName;
         }
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button_C.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button_C.cs.meta
new file mode 100644
index 00000000..dbb81e4a
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Button_C.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 2106c0f7afa9b7647978373d7c6d5aae
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl_D.cs
similarity index 89%
rename from AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl.cs
rename to AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl_D.cs
index 9f8f811d..bcd70e18 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl_D.cs
@@ -5,10 +5,10 @@ namespace AxibugEmuOnline.Client.InputDevices
     /// <summary>
     /// 输入设备的抽象控件接口
     /// </summary>
-    public abstract class InputControl
+    public abstract class InputControl_D
     {
         /// <summary> 控件所属设备 </summary>
-        public InputDevice Device { get; internal set; }
+        public InputDevice_D Device { get; internal set; }
 
         /// <summary> 获取该控件是否在当前调用帧被激发 </summary>
         public bool Start { get; private set; }
@@ -51,7 +51,7 @@ namespace AxibugEmuOnline.Client.InputDevices
         /// <summary> 控件名,这个控件名称必须是唯一的 </summary>
         public abstract string ControlName { get; }
 
-        internal InputControl(InputDevice device)
+        internal InputControl_D(InputDevice_D device)
         {
             Device = device;
         }
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl_D.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl_D.cs.meta
new file mode 100644
index 00000000..f5b08af4
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/InputControl_D.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 0d3d88a49545f614184e3d5a59d2958e
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick_C.cs
similarity index 83%
rename from AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick.cs
rename to AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick_C.cs
index 227647c6..225da4c3 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick_C.cs
@@ -5,7 +5,7 @@ namespace AxibugEmuOnline.Client.InputDevices
     /// <summary>
     /// 摇杆类型的输入控件,支持的返回值为Vector2
     /// </summary>
-    public class Stick : InputControl
+    public class Stick_C : InputControl_D
     {
         string m_controlName;
         public override string ControlName => m_controlName;
@@ -15,7 +15,7 @@ namespace AxibugEmuOnline.Client.InputDevices
         public VirtualButton Left { get; private set; }
         public VirtualButton Right { get; private set; }
 
-        public Stick(InputDevice device, string controlName) : base(device)
+        public Stick_C(InputDevice_D device, string controlName) : base(device)
         {
             m_controlName = controlName;
 
@@ -43,11 +43,11 @@ namespace AxibugEmuOnline.Client.InputDevices
         }
 
 
-        public class VirtualButton : InputControl
+        public class VirtualButton : InputControl_D
         {
             internal bool m_performing;
 
-            public VirtualButton(InputDevice device) : base(device) { }
+            public VirtualButton(InputDevice_D device) : base(device) { }
 
             public override bool Performing
             {
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick_C.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick_C.cs.meta
new file mode 100644
index 00000000..2fa0f1e3
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputControls/Stick_C.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 9091f3794f770294488695cd2cbbf7af
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice_D.cs
similarity index 79%
rename from AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice.cs
rename to AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice_D.cs
index e8f17bc6..402df819 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice_D.cs
@@ -2,7 +2,7 @@
 
 namespace AxibugEmuOnline.Client.InputDevices
 {
-    public abstract class InputDevice
+    public abstract class InputDevice_D
     {
         public string UniqueName => m_resolver.GetDeviceName(this);
 
@@ -13,9 +13,9 @@ namespace AxibugEmuOnline.Client.InputDevices
         /// <summary> 获得输入解决器 </summary>
         internal InputResolver Resolver => m_resolver;
 
-        protected Dictionary<string, InputControl> m_controlMapper = new Dictionary<string, InputControl>();
+        protected Dictionary<string, InputControl_D> m_controlMapper = new Dictionary<string, InputControl_D>();
         protected InputResolver m_resolver;
-        public InputDevice(InputResolver resolver)
+        public InputDevice_D(InputResolver resolver)
         {
             m_resolver = resolver;
 
@@ -41,12 +41,12 @@ namespace AxibugEmuOnline.Client.InputDevices
 
         /// <summary> 用于列出这个输入设备的所有输入控件实例 </summary>
         /// <returns></returns>
-        protected abstract List<InputControl> DefineControls();
+        protected abstract List<InputControl_D> DefineControls();
 
         /// <summary> 通过控件名称,找到对应的控件 </summary>
         /// <param name="keyName"></param>
         /// <returns></returns>
-        public InputControl FindControlByName(string controlName)
+        public InputControl_D FindControlByName(string controlName)
         {
             m_controlMapper.TryGetValue(controlName, out var key);
             return key;
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice_D.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice_D.cs.meta
new file mode 100644
index 00000000..40a2f53f
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/InputDevice_D.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: eab247826950d024b8a5c7ade4142391
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard_D.cs
similarity index 94%
rename from AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard.cs
rename to AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard_D.cs
index a85464a2..34d41b59 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard_D.cs
@@ -7,15 +7,15 @@ namespace AxibugEmuOnline.Client.InputDevices
     /// <summary>
     /// 通用键盘设备
     /// </summary>
-    public partial class KeyBoard : InputDevice
+    public partial class Keyboard_D : InputDevice_D
     {
         Dictionary<KeyCode, KeyboardKey> m_keyControllerMap = new Dictionary<KeyCode, KeyboardKey>();
 
-        public KeyBoard(InputResolver resolver) : base(resolver) { }
+        public Keyboard_D(InputResolver resolver) : base(resolver) { }
 
-        protected override List<InputControl> DefineControls()
+        protected override List<InputControl_D> DefineControls()
         {
-            var keys = s_keyboardKeys.Select(kc => new KeyboardKey(kc, this) as InputControl).ToList();
+            var keys = s_keyboardKeys.Select(kc => new KeyboardKey(kc, this) as InputControl_D).ToList();
             foreach (KeyboardKey key in keys)
             {
                 m_keyControllerMap.Add(key.m_keycode, key);
@@ -23,11 +23,11 @@ namespace AxibugEmuOnline.Client.InputDevices
             return keys;
         }
 
-        public class KeyboardKey : Button
+        public class KeyboardKey : Button_C
         {
             internal KeyCode m_keycode;
 
-            internal KeyboardKey(KeyCode listenKey, KeyBoard keyboard)
+            internal KeyboardKey(KeyCode listenKey, Keyboard_D keyboard)
                 : base(keyboard, listenKey.ToString())
             {
                 m_keycode = listenKey;
@@ -36,7 +36,7 @@ namespace AxibugEmuOnline.Client.InputDevices
     }
 
     #region HardCodeForKeyboard
-    public partial class KeyBoard : InputDevice
+    public partial class Keyboard_D : InputDevice_D
     {
         static readonly List<KeyCode> s_keyboardKeys = new List<KeyCode>
         {
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard_D.cs.meta
similarity index 100%
rename from AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard.cs.meta
rename to AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/Keyboard_D.cs.meta
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController.cs
deleted file mode 100644
index 9ebbbf72..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System.Collections.Generic;
-
-namespace AxibugEmuOnline.Client.InputDevices
-{
-    public class PSVController : InputDevice
-    {
-        /// <summary> × </summary>
-        public Button Cross { get; private set; }
-        /// <summary> ○ </summary>
-        public Button Circle { get; private set; }
-        /// <summary> □ </summary>
-        public Button Square { get; private set; }
-        /// <summary> △ </summary>
-        public Button Triangle { get; private set; }
-        public Button L { get; private set; }
-        public Button R { get; private set; }
-        public Button Select { get; private set; }
-        public Button Start { get; private set; }
-        public Button Up { get; private set; }
-        public Button Right { get; private set; }
-        public Button Down { get; private set; }
-        public Button Left { get; private set; }
-        public Stick LeftStick { get; private set; }
-        public Stick RightStick { get; private set; }
-
-        public PSVController(InputResolver resolver) : base(resolver) { }
-
-        protected override List<InputControl> DefineControls()
-        {
-            List<InputControl> result = new List<InputControl>();
-
-            Cross = new Button(this, "X");
-            Circle = new Button(this, "⭕");
-            Square = new Button(this, "□");
-            Triangle = new Button(this, "△");
-
-            L = new Button(this, "L");
-            R = new Button(this, "R");
-
-            Select = new Button(this, "SELECT");
-            Start = new Button(this, "START");
-
-            Up = new Button(this, "UP");
-            Right = new Button(this, "RIGHT");
-            Down = new Button(this, "DOWN");
-            Left = new Button(this, "LEFT");
-
-            LeftStick = new Stick(this, nameof(LeftStick));
-            RightStick = new Stick(this, nameof(RightStick));
-
-            return result;
-        }
-    }
-}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController_D.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController_D.cs
new file mode 100644
index 00000000..4d96be15
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController_D.cs
@@ -0,0 +1,54 @@
+using System.Collections.Generic;
+
+namespace AxibugEmuOnline.Client.InputDevices
+{
+    public class PSVController_D : InputDevice_D
+    {
+        /// <summary> × </summary>
+        public Button_C Cross { get; private set; }
+        /// <summary> ○ </summary>
+        public Button_C Circle { get; private set; }
+        /// <summary> □ </summary>
+        public Button_C Square { get; private set; }
+        /// <summary> △ </summary>
+        public Button_C Triangle { get; private set; }
+        public Button_C L { get; private set; }
+        public Button_C R { get; private set; }
+        public Button_C Select { get; private set; }
+        public Button_C Start { get; private set; }
+        public Button_C Up { get; private set; }
+        public Button_C Right { get; private set; }
+        public Button_C Down { get; private set; }
+        public Button_C Left { get; private set; }
+        public Stick_C LeftStick { get; private set; }
+        public Stick_C RightStick { get; private set; }
+
+        public PSVController_D(InputResolver resolver) : base(resolver) { }
+
+        protected override List<InputControl_D> DefineControls()
+        {
+            List<InputControl_D> result = new List<InputControl_D>();
+
+            Cross = new Button_C(this, "X");
+            Circle = new Button_C(this, "⭕");
+            Square = new Button_C(this, "□");
+            Triangle = new Button_C(this, "△");
+
+            L = new Button_C(this, "L");
+            R = new Button_C(this, "R");
+
+            Select = new Button_C(this, "SELECT");
+            Start = new Button_C(this, "START");
+
+            Up = new Button_C(this, "UP");
+            Right = new Button_C(this, "RIGHT");
+            Down = new Button_C(this, "DOWN");
+            Left = new Button_C(this, "LEFT");
+
+            LeftStick = new Stick_C(this, nameof(LeftStick));
+            RightStick = new Stick_C(this, nameof(RightStick));
+
+            return result;
+        }
+    }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController_D.cs.meta
similarity index 100%
rename from AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController.cs.meta
rename to AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/Devices/PSVController_D.cs.meta
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputDevicesManager.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputDevicesManager.cs
index 7dc4e2de..0de419b2 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputDevicesManager.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputDevicesManager.cs
@@ -6,11 +6,11 @@ namespace AxibugEmuOnline.Client.InputDevices
     public class InputDevicesManager
     {
         InputResolver m_inputResolver = InputResolver.Create();
-        Dictionary<string, InputDevice> m_devices = new Dictionary<string, InputDevice>();
+        Dictionary<string, InputDevice_D> m_devices = new Dictionary<string, InputDevice_D>();
 
-        public delegate void OnDeviceConnectedHandle(InputDevice connectDevice);
+        public delegate void OnDeviceConnectedHandle(InputDevice_D connectDevice);
         public event OnDeviceConnectedHandle OnDeviceConnected;
-        public delegate void OnDeviceLostHandle(InputDevice lostDevice);
+        public delegate void OnDeviceLostHandle(InputDevice_D lostDevice);
         public event OnDeviceLostHandle OnDeviceLost;
 
         public InputDevicesManager()
@@ -21,23 +21,23 @@ namespace AxibugEmuOnline.Client.InputDevices
                 AddDevice(device);
         }
 
-        private void Resolver_OnDeviceLost(InputDevice lostDevice)
+        private void Resolver_OnDeviceLost(InputDevice_D lostDevice)
         {
             RemoveDevice(lostDevice);
         }
 
-        private void Resolver_OnDeviceConnected(InputDevice connectDevice)
+        private void Resolver_OnDeviceConnected(InputDevice_D connectDevice)
         {
             AddDevice(connectDevice);
         }
 
-        void AddDevice(InputDevice device)
+        void AddDevice(InputDevice_D device)
         {
             m_devices[device.UniqueName] = device;
             OnDeviceConnected?.Invoke(device);
         }
 
-        void RemoveDevice(InputDevice device)
+        void RemoveDevice(InputDevice_D device)
         {
             m_devices.Remove(device.UniqueName);
             OnDeviceLost?.Invoke(device);
@@ -46,7 +46,7 @@ namespace AxibugEmuOnline.Client.InputDevices
         /// <summary>
         /// 获得一个指定类型的设备
         /// </summary>
-        public T GetDevice<T>() where T : InputDevice
+        public T GetDevice<T>() where T : InputDevice_D
         {
             foreach (var d in m_devices.Values)
             {
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/InputResolver.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/InputResolver.cs
index 80692459..ee448e40 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/InputResolver.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/InputResolver.cs
@@ -30,40 +30,40 @@ namespace AxibugEmuOnline.Client.InputDevices
         /// 获得所有当前已连入的输入设备
         /// </summary>
         /// <returns></returns>
-        public abstract IEnumerable<InputDevice> GetDevices();
+        public abstract IEnumerable<InputDevice_D> GetDevices();
 
         /// <summary>
         /// 检查指定输入设备是否还保持着连接
         /// </summary>
         /// <returns></returns>
-        public abstract bool CheckOnline(InputDevice device);
+        public abstract bool CheckOnline(InputDevice_D device);
 
         /// <param name="lostDevice">丢失的设备</param>
-        public delegate void OnDeviceLostHandle(InputDevice lostDevice);
+        public delegate void OnDeviceLostHandle(InputDevice_D lostDevice);
         /// <summary> 当设备丢失时触发 </summary>
         public event OnDeviceLostHandle OnDeviceLost;
-        protected void RaiseDeviceLost(InputDevice lostDevice)
+        protected void RaiseDeviceLost(InputDevice_D lostDevice)
         {
             OnDeviceLost?.Invoke(lostDevice);
         }
 
         /// <param name="connectDevice">建立连接的设备</param>
-        public delegate void OnDeviceConnectedHandle(InputDevice connectDevice);
+        public delegate void OnDeviceConnectedHandle(InputDevice_D connectDevice);
         /// <summary> 当设备连接时触发 </summary>
         public event OnDeviceConnectedHandle OnDeviceConnected;
-        protected void RaiseDeviceConnected(InputDevice connectDevice)
+        protected void RaiseDeviceConnected(InputDevice_D connectDevice)
         {
             OnDeviceConnected?.Invoke(connectDevice);
         }
 
-        public abstract bool CheckPerforming<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl;
-        public abstract Vector2 GetVector2<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl;
-        public abstract float GetFloat<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl;
+        public abstract bool CheckPerforming<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_D;
+        public abstract Vector2 GetVector2<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_D;
+        public abstract float GetFloat<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_D;
         /// <summary>
         /// 获得输入设备的唯一名称
         /// </summary>
         /// <param name="inputDevice">这个设备必须是由resolver提供,并且保持着连接</param>
         /// <returns></returns>
-        public abstract string GetDeviceName(InputDevice inputDevice);
+        public abstract string GetDeviceName(InputDevice_D inputDevice);
     }
 }
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/InputSystemResolver.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/InputSystemResolver.cs
index 9e121552..c8d96634 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/InputSystemResolver.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/InputSystemResolver.cs
@@ -1,30 +1,27 @@
 #if ENABLE_INPUT_SYSTEM
 using System.Collections.Generic;
 using UnityEngine;
+using UnityEngine.InputSystem;
 using UnityEngine.InputSystem.Controls;
-using IP = UnityEngine.InputSystem.InputSystem;
-using IPDevice = UnityEngine.InputSystem.InputDevice;
-using IPKeyboard = UnityEngine.InputSystem.Keyboard;
 
 namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
 {
     /// <summary> 基于UnityInputSystem实现的输入解决器 </summary>
     public class InputSystemResolver : InputResolver
     {
-        DualWayDictionary<IPDevice, InputDevice> m_devices = new DualWayDictionary<IPDevice, InputDevice>();
+        DualWayDictionary<InputDevice, InputDevice_D> m_devices = new DualWayDictionary<InputDevice, InputDevice_D>();
 
         protected override void OnInit()
         {
-            foreach (var device in IP.devices) AddDevice(device);
+            foreach (var device in InputSystem.devices) AddDevice(device);
 
-            IP.onDeviceChange += IP_onDeviceChange;
+            InputSystem.onDeviceChange += IP_onDeviceChange;
         }
 
-        private void AddDevice(IPDevice ipdev)
+        private void AddDevice(InputDevice ipdev)
         {
-            InputDevice newDevice = null;
-            if (ipdev is IPKeyboard) newDevice = new KeyBoard(this);
-
+            InputDevice_D newDevice = null;
+            if (ipdev is Keyboard) newDevice = new Keyboard_D(this);
             if (newDevice != null)
             {
                 m_devices.Add(ipdev, newDevice);
@@ -32,7 +29,7 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
             }
         }
 
-        private void RemoveDevice(IPDevice ipdev)
+        private void RemoveDevice(InputDevice ipdev)
         {
             if (m_devices.TryGetValue(ipdev, out var device))
             {
@@ -41,7 +38,7 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
             }
         }
 
-        public override string GetDeviceName(InputDevice inputDevice)
+        public override string GetDeviceName(InputDevice_D inputDevice)
         {
             m_devices.TryGetKey(inputDevice, out var ipdev);
             Debug.Assert(ipdev != null, "不能对已离线的设备获取名称");
@@ -49,12 +46,12 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
             return $"{ipdev.description.deviceClass}_{ipdev.description.interfaceName}_{ipdev.deviceId}";
         }
 
-        public override bool CheckOnline(InputDevice device)
+        public override bool CheckOnline(InputDevice_D device)
         {
             return m_devices.TryGetKey(device, out var _);
         }
 
-        private void IP_onDeviceChange(IPDevice device, UnityEngine.InputSystem.InputDeviceChange changeType)
+        private void IP_onDeviceChange(InputDevice device, UnityEngine.InputSystem.InputDeviceChange changeType)
         {
             switch (changeType)
             {
@@ -63,20 +60,20 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
             }
         }
 
-        public override IEnumerable<InputDevice> GetDevices()
+        public override IEnumerable<InputDevice_D> GetDevices()
         {
             return m_devices.Values;
         }
 
         public override bool CheckPerforming<CONTROLLER>(CONTROLLER control)
         {
-            if (control.Device is KeyBoard keyboard)
+            if (control.Device is Keyboard_D keyboard)
             {
-                if (control is KeyBoard.KeyboardKey key)
+                if (control is Keyboard_D.KeyboardKey key)
                 {
                     if (m_devices.TryGetKey(keyboard, out var ipdev))
                     {
-                        var ipKeyboard = ipdev as IPKeyboard;
+                        var ipKeyboard = ipdev as Keyboard;
                         if (ipKeyboard == null) return false;
 
                         var k = GetIPKeyboardKey(ipKeyboard, key.m_keycode);
@@ -101,7 +98,7 @@ namespace AxibugEmuOnline.Client.InputDevices.ForInputSystem
             throw new System.NotImplementedException();
         }
 
-        static ButtonControl GetIPKeyboardKey(IPKeyboard keyboard, KeyCode key)
+        static ButtonControl GetIPKeyboardKey(Keyboard keyboard, KeyCode key)
         {
             switch (key)
             {
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/PSVResolver.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/PSVResolver.cs
index 6f95e0b2..f97a973a 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/PSVResolver.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/InputDevicesManager/InputResolver/PSVResolver.cs
@@ -6,35 +6,35 @@ namespace AxibugEmuOnline.Client.InputDevices.ForPSV
     /// <summary> PSV特化输入解决器,只能用于PSV平台,并且只支持PSV控制器 </summary>
     public class PSVResolver : InputResolver
     {
-        List<InputDevice> m_devices = new List<InputDevice>();
-        PSVController m_psvController;
+        List<InputDevice_D> m_devices = new List<InputDevice_D>();
+        PSVController_D m_psvController;
 
         protected override void OnInit()
         {
-            m_psvController = new PSVController(this);
+            m_psvController = new PSVController_D(this);
             m_devices.Add(m_psvController);
         }
 
-        public override IEnumerable<InputDevice> GetDevices()
+        public override IEnumerable<InputDevice_D> GetDevices()
         {
             return m_devices;
         }
 
-        public override bool CheckOnline(InputDevice device)
+        public override bool CheckOnline(InputDevice_D device)
         {
             return device == m_psvController;
         }
 
-        public override string GetDeviceName(InputDevice inputDevice)
+        public override string GetDeviceName(InputDevice_D inputDevice)
         {
             Debug.Assert(inputDevice == m_psvController, "只支持psv控制器");
 
-            return nameof(PSVController);
+            return nameof(PSVController_D);
         }
 
         public override bool CheckPerforming<CONTROLLER>(CONTROLLER control)
         {
-            if (control.Device is PSVController psvCon)
+            if (control.Device is PSVController_D psvCon)
             {
                 if (control == psvCon.Cross) return Input.GetKey(KeyCode.Joystick1Button0);
                 else if (control == psvCon.Circle) return Input.GetKey(KeyCode.Joystick1Button1);
@@ -60,7 +60,7 @@ namespace AxibugEmuOnline.Client.InputDevices.ForPSV
 
         public override Vector2 GetVector2<CONTROLLER>(CONTROLLER control)
         {
-            if (control.Device is PSVController psvCon)
+            if (control.Device is PSVController_D psvCon)
             {
                 if (control == psvCon.LeftStick)
                 {