From 8fd84454c44082b9bbfd1bc5637ac6ee7f53f2af Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Thu, 21 Nov 2024 17:41:53 +0800
Subject: [PATCH 01/10] =?UTF-8?q?=E5=BC=95=E5=85=A5inputsystem?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 AxibugEmuOnline.Client/Packages/manifest.json      | 1 +
 AxibugEmuOnline.Client/Packages/packages-lock.json | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/AxibugEmuOnline.Client/Packages/manifest.json b/AxibugEmuOnline.Client/Packages/manifest.json
index d8da09ab..4d5424d1 100644
--- a/AxibugEmuOnline.Client/Packages/manifest.json
+++ b/AxibugEmuOnline.Client/Packages/manifest.json
@@ -2,6 +2,7 @@
   "dependencies": {
     "com.unity.2d.sprite": "1.0.0",
     "com.unity.ide.visualstudio": "2.0.22",
+    "com.unity.inputsystem": "1.3.0",
     "com.unity.ugui": "1.0.0",
     "com.unity.modules.ai": "1.0.0",
     "com.unity.modules.androidjni": "1.0.0",
diff --git a/AxibugEmuOnline.Client/Packages/packages-lock.json b/AxibugEmuOnline.Client/Packages/packages-lock.json
index d327dd7d..3ea0dc19 100644
--- a/AxibugEmuOnline.Client/Packages/packages-lock.json
+++ b/AxibugEmuOnline.Client/Packages/packages-lock.json
@@ -22,6 +22,15 @@
       },
       "url": "https://packages.unity.cn"
     },
+    "com.unity.inputsystem": {
+      "version": "1.3.0",
+      "depth": 0,
+      "source": "registry",
+      "dependencies": {
+        "com.unity.modules.uielements": "1.0.0"
+      },
+      "url": "https://packages.unity.cn"
+    },
     "com.unity.test-framework": {
       "version": "1.1.31",
       "depth": 1,

From cd6c4f36c16e321e6161149b9e151b21c53d59fe Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Thu, 21 Nov 2024 20:32:41 +0800
Subject: [PATCH 02/10] =?UTF-8?q?UI=E8=BE=93=E5=85=A5=E7=B3=BB=E7=BB=9F?=
 =?UTF-8?q?=E5=B7=B2=E6=8E=A5=E5=85=A5InputSystem?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Assets/Resources/InputSystem.meta         |   8 +
 .../InputSystem/UI_InputSetting.inputactions  | 304 ++++++++++++++++++
 .../UI_InputSetting.inputactions.meta         |  14 +
 .../Assets/Scene/AxibugEmuOnline.Client.unity | 127 +++++++-
 .../Script/AxibugEmuOnline.Client.asmdef      |   3 +-
 .../Script/ControlSchemes/ControlScheme.cs    |  65 ----
 .../Script/ControlSchemes/NesGamingScheme.cs  |  27 --
 .../Script/ControlSchemes/NormalScheme.cs     |  18 --
 ...rolSchemes.meta => IkeyMapperChanger.meta} |   0
 .../IkeyMapperChanger/CommandChanger.cs       |  12 +
 .../CommandChanger.cs.meta}                   |   0
 .../Script/IkeyMapperChanger/GamingChanger.cs |  10 +
 .../GamingChanger.cs.meta}                    |   2 +-
 .../Script/IkeyMapperChanger/Legacy.meta      |   8 +
 .../Legacy/GamingChanger_Legacy.cs            |  25 ++
 .../Legacy/GamingChanger_Legacy.cs.meta}      |   2 +-
 .../Legacy/NormalChanger_Legacy.cs            |  58 ++++
 .../Legacy/NormalChanger_Legacy.cs.meta       |  11 +
 .../Script/IkeyMapperChanger/NormalChanger.cs |  10 +
 .../IkeyMapperChanger/NormalChanger.cs.meta   |  11 +
 .../Assets/Script/Manager/AppEmu.cs           |   2 +-
 .../Assets/Script/NesEmulator/NesEmulator.cs  |   2 +-
 .../UI/CommandDispatcher/CommandDispatcher.cs |  72 +++--
 .../UI/CommandDispatcher/CommandListener.cs   |  65 ++++
 .../CommandDispatcher/CommandListener.cs.meta |  11 +
 .../CommandListener_Legacy.cs                 |  38 +++
 .../CommandListener_Legacy.cs.meta            |  11 +
 .../UI/CommandDispatcher/ICommandListener.cs  |  24 ++
 .../ICommandListener.cs.meta                  |  11 +
 .../Assets/Script/UI/InGameUI/InGameUI.cs     |   2 +-
 .../Assets/Script/UI/LaunchUI.cs              |   2 +-
 .../Assets/Script/UI/OptionUI/OptionUI.cs     |   8 +-
 .../ProjectSettings/ProjectSettings.asset     |   2 +-
 .../ProjectSettings/TagManager.asset          |   3 +-
 34 files changed, 805 insertions(+), 163 deletions(-)
 create mode 100644 AxibugEmuOnline.Client/Assets/Resources/InputSystem.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions
 create mode 100644 AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions.meta
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/ControlSchemes/ControlScheme.cs
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NesGamingScheme.cs
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NormalScheme.cs
 rename AxibugEmuOnline.Client/Assets/Script/{ControlSchemes.meta => IkeyMapperChanger.meta} (100%)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/CommandChanger.cs
 rename AxibugEmuOnline.Client/Assets/Script/{ControlSchemes/ControlScheme.cs.meta => IkeyMapperChanger/CommandChanger.cs.meta} (100%)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs
 rename AxibugEmuOnline.Client/Assets/Script/{ControlSchemes/NormalScheme.cs.meta => IkeyMapperChanger/GamingChanger.cs.meta} (83%)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs
 rename AxibugEmuOnline.Client/Assets/Script/{ControlSchemes/NesGamingScheme.cs.meta => IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs.meta} (83%)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/ICommandListener.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/ICommandListener.cs.meta

diff --git a/AxibugEmuOnline.Client/Assets/Resources/InputSystem.meta b/AxibugEmuOnline.Client/Assets/Resources/InputSystem.meta
new file mode 100644
index 00000000..38637690
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Resources/InputSystem.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6178d336be6488b46aed623405e79f7b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions b/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions
new file mode 100644
index 00000000..5b0afe02
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions
@@ -0,0 +1,304 @@
+{
+    "name": "New Controls",
+    "maps": [
+        {
+            "name": "UI_Normal",
+            "id": "9a397a4f-4d88-492f-a918-bf9b8d3be756",
+            "actions": [
+                {
+                    "name": "SelectItemLeft",
+                    "type": "Button",
+                    "id": "107019fe-240c-46ff-8c62-cb385ef8b9af",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "SelectItemRight",
+                    "type": "Button",
+                    "id": "826dd3f1-2cf8-4169-97c8-dfb56b850143",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "SelectItemUp",
+                    "type": "Button",
+                    "id": "505dabb4-91f7-430c-8696-092690269639",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "SelectItemDown",
+                    "type": "Button",
+                    "id": "b3da8633-7f50-44b3-8302-50706e589307",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Enter",
+                    "type": "Button",
+                    "id": "0bdf3154-e1db-4044-af50-cacb3764a07c",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Back",
+                    "type": "Button",
+                    "id": "68074d67-61a1-4a4d-bd68-8398b0e7afe3",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "OptionMenu",
+                    "type": "Button",
+                    "id": "64b67280-c530-4e38-b3ff-8d0177591396",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                }
+            ],
+            "bindings": [
+                {
+                    "name": "",
+                    "id": "fc724bf2-7736-419c-9f46-19bd45a0d276",
+                    "path": "<Keyboard>/a",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "SelectItemLeft",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "02f4433e-4417-4fef-b178-a616e2941311",
+                    "path": "<Keyboard>/leftArrow",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "SelectItemLeft",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "cb874e72-d3db-4024-b9fb-37190acd9568",
+                    "path": "<Keyboard>/d",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "SelectItemRight",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "646b923b-4d3d-4b5c-9dd2-0119e9d3e2c5",
+                    "path": "<Keyboard>/rightArrow",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "SelectItemRight",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "28fa0139-d5a2-4e26-87af-2043e01234e6",
+                    "path": "<Keyboard>/w",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "SelectItemUp",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "4474efdf-70ff-4826-883c-2fdf9f96e78e",
+                    "path": "<Keyboard>/upArrow",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "SelectItemUp",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "392a8cbc-71f6-4282-b945-4c7b3d17ba3a",
+                    "path": "<Keyboard>/s",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "SelectItemDown",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "f30b6fb3-147e-4997-b628-fab3f635192b",
+                    "path": "<Keyboard>/downArrow",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "SelectItemDown",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "70c6db12-432b-482d-99a1-71e002c30157",
+                    "path": "<Keyboard>/k",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "Enter",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "48d5c450-6ac3-40fb-8ff4-66c7f3b3a00b",
+                    "path": "<Keyboard>/enter",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "Enter",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "ef83ae7c-a809-4f23-a206-102199a5ede3",
+                    "path": "<Keyboard>/l",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "Back",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "14b503c8-80a1-458c-9e0f-a3fa38f314be",
+                    "path": "<Keyboard>/backspace",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "Back",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "e1e12f45-fb41-4b78-adbf-add2881bd4b1",
+                    "path": "<Keyboard>/i",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "OptionMenu",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "0b010e17-3581-42e6-90b1-f1bf728a3a0c",
+                    "path": "<Keyboard>/shift",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "OptionMenu",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                }
+            ]
+        },
+        {
+            "name": "UI_InGame",
+            "id": "2c8af03e-03e7-4553-81c6-dcff543cdcdc",
+            "actions": [
+                {
+                    "name": "OptionMenu",
+                    "type": "Button",
+                    "id": "cab3c346-07e2-4c0c-8377-cb934dd28bd3",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                }
+            ],
+            "bindings": [
+                {
+                    "name": "",
+                    "id": "28d4d045-1070-4ea0-be35-b5ffb1c33bcb",
+                    "path": "<Keyboard>/escape",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard",
+                    "action": "OptionMenu",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                }
+            ]
+        }
+    ],
+    "controlSchemes": [
+        {
+            "name": "Keyboard",
+            "bindingGroup": "Keyboard",
+            "devices": [
+                {
+                    "devicePath": "<Keyboard>",
+                    "isOptional": false,
+                    "isOR": false
+                }
+            ]
+        },
+        {
+            "name": "UniversalGamePad",
+            "bindingGroup": "UniversalGamePad",
+            "devices": [
+                {
+                    "devicePath": "<Gamepad>",
+                    "isOptional": false,
+                    "isOR": false
+                }
+            ]
+        },
+        {
+            "name": "Xbox Controller",
+            "bindingGroup": "Xbox Controller",
+            "devices": [
+                {
+                    "devicePath": "<XInputController>",
+                    "isOptional": false,
+                    "isOR": false
+                }
+            ]
+        },
+        {
+            "name": "PlayStation Controller",
+            "bindingGroup": "PlayStation Controller",
+            "devices": [
+                {
+                    "devicePath": "<DualShockGamepad>",
+                    "isOptional": false,
+                    "isOR": false
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions.meta b/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions.meta
new file mode 100644
index 00000000..e9c5b5a9
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: eb413fd14a8483440af9652b7e4df5e1
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
+  generateWrapperCode: 0
+  wrapperCodePath: 
+  wrapperClassName: 
+  wrapperCodeNamespace: InputSystem
diff --git a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
index 58b4ad59..f587967d 100644
--- a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
+++ b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
@@ -150,16 +150,25 @@ MonoBehaviour:
   m_GameObject: {fileID: 74796456}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+  m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_HorizontalAxis: Horizontal
-  m_VerticalAxis: Vertical
-  m_SubmitButton: Submit
-  m_CancelButton: Cancel
-  m_InputActionsPerSecond: 10
-  m_RepeatDelay: 0.5
-  m_ForceModuleActive: 0
+  m_MoveRepeatDelay: 0.5
+  m_MoveRepeatRate: 0.1
+  m_XRTrackingOrigin: {fileID: 0}
+  m_ActionsAsset: {fileID: -944628639613478452, guid: eb413fd14a8483440af9652b7e4df5e1, type: 3}
+  m_PointAction: {fileID: 0}
+  m_MoveAction: {fileID: 0}
+  m_SubmitAction: {fileID: 0}
+  m_CancelAction: {fileID: 0}
+  m_LeftClickAction: {fileID: 0}
+  m_MiddleClickAction: {fileID: 0}
+  m_RightClickAction: {fileID: 0}
+  m_ScrollWheelAction: {fileID: 0}
+  m_TrackedDevicePositionAction: {fileID: 0}
+  m_TrackedDeviceOrientationAction: {fileID: 0}
+  m_DeselectOnBackgroundClick: 1
+  m_PointerBehavior: 0
 --- !u!114 &74796458
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -2499,7 +2508,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1639091784002085428, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_RootOrder
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 1639091784002085428, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.x
@@ -13565,6 +13574,7 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 0, y: 0, z: 0}
   m_Children:
+  - {fileID: 2073453794}
   - {fileID: 1983793178}
   - {fileID: 246947326}
   - {fileID: 1318590597}
@@ -13665,6 +13675,99 @@ RectTransform:
   m_CorrespondingSourceObject: {fileID: 1639091784002085428, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
   m_PrefabInstance: {fileID: 730698711}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &2073453793
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2073453794}
+  - component: {fileID: 2073453795}
+  m_Layer: 0
+  m_Name: UI_Input
+  m_TagString: UIInput
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &2073453794
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2073453793}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -10799.999}
+  m_LocalScale: {x: 108, y: 108, z: 108}
+  m_Children: []
+  m_Father: {fileID: 1599240741}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &2073453795
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2073453793}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Actions: {fileID: -944628639613478452, guid: eb413fd14a8483440af9652b7e4df5e1, type: 3}
+  m_NotificationBehavior: 3
+  m_UIInputModule: {fileID: 74796457}
+  m_DeviceLostEvent:
+    m_PersistentCalls:
+      m_Calls: []
+  m_DeviceRegainedEvent:
+    m_PersistentCalls:
+      m_Calls: []
+  m_ControlsChangedEvent:
+    m_PersistentCalls:
+      m_Calls: []
+  m_ActionEvents:
+  - m_PersistentCalls:
+      m_Calls: []
+    m_ActionId: 107019fe-240c-46ff-8c62-cb385ef8b9af
+    m_ActionName: UI_Normal/SelectItemLeft
+  - m_PersistentCalls:
+      m_Calls: []
+    m_ActionId: 826dd3f1-2cf8-4169-97c8-dfb56b850143
+    m_ActionName: UI_Normal/SelectItemRight
+  - m_PersistentCalls:
+      m_Calls: []
+    m_ActionId: 505dabb4-91f7-430c-8696-092690269639
+    m_ActionName: UI_Normal/SelectItemUp
+  - m_PersistentCalls:
+      m_Calls: []
+    m_ActionId: b3da8633-7f50-44b3-8302-50706e589307
+    m_ActionName: UI_Normal/SelectItemDown
+  - m_PersistentCalls:
+      m_Calls: []
+    m_ActionId: 0bdf3154-e1db-4044-af50-cacb3764a07c
+    m_ActionName: UI_Normal/Enter
+  - m_PersistentCalls:
+      m_Calls: []
+    m_ActionId: 68074d67-61a1-4a4d-bd68-8398b0e7afe3
+    m_ActionName: UI_Normal/Back
+  - m_PersistentCalls:
+      m_Calls: []
+    m_ActionId: 64b67280-c530-4e38-b3ff-8d0177591396
+    m_ActionName: UI_Normal/OptionMenu
+  - m_PersistentCalls:
+      m_Calls: []
+    m_ActionId: cab3c346-07e2-4c0c-8377-cb934dd28bd3
+    m_ActionName: UI_InGame/OptionMenu
+  m_NeverAutoSwitchControlSchemes: 0
+  m_DefaultControlScheme: Keyboard
+  m_DefaultActionMap: UI_Normal
+  m_SplitScreenIndex: -1
+  m_Camera: {fileID: 0}
 --- !u!1001 &1963501580473600373
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -13682,7 +13785,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1963501579241001456, guid: 334eee9f85f308347844f8f5e99167c3, type: 3}
       propertyPath: m_RootOrder
-      value: 2
+      value: 3
       objectReference: {fileID: 0}
     - target: {fileID: 1963501579241001456, guid: 334eee9f85f308347844f8f5e99167c3, type: 3}
       propertyPath: m_AnchorMax.x
@@ -13791,7 +13894,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
       propertyPath: m_RootOrder
-      value: 3
+      value: 4
       objectReference: {fileID: 0}
     - target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
       propertyPath: m_AnchorMax.x
@@ -13944,7 +14047,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
       propertyPath: m_RootOrder
-      value: 1
+      value: 2
       objectReference: {fileID: 0}
     - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
       propertyPath: m_AnchorMax.x
diff --git a/AxibugEmuOnline.Client/Assets/Script/AxibugEmuOnline.Client.asmdef b/AxibugEmuOnline.Client/Assets/Script/AxibugEmuOnline.Client.asmdef
index 410a9f7f..177a08c9 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AxibugEmuOnline.Client.asmdef
+++ b/AxibugEmuOnline.Client/Assets/Script/AxibugEmuOnline.Client.asmdef
@@ -4,7 +4,8 @@
     "references": [
         "GUID:390a2c4058e5c304a87e8be70c84d80b",
         "GUID:085dc26d74e6f994a924d401ea41a5a8",
-        "GUID:0a45db2096af23647aaafe5b70ccb4d7"
+        "GUID:0a45db2096af23647aaafe5b70ccb4d7",
+        "GUID:75469ad4d38634e559750d17036d5f7c"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
diff --git a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/ControlScheme.cs b/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/ControlScheme.cs
deleted file mode 100644
index 957a0e1e..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/ControlScheme.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-namespace AxibugEmuOnline.Client
-{
-    public abstract class ControlScheme
-    {
-        private static ControlScheme m_current;
-        public static ControlScheme Current
-        {
-            get => m_current;
-            set
-            {
-                m_current = value;
-
-                Dictionary<KeyCode, EnumCommand> mapper = new Dictionary<KeyCode, EnumCommand>();
-                m_current.SetUIKeys(mapper);
-                CommandDispatcher.Instance.SetKeyMapper(mapper);
-            }
-        }
-
-        public string Name { get; private set; }
-
-        public virtual void SetUIKeys(Dictionary<KeyCode, EnumCommand> uiKeyMapper)
-        {
-            uiKeyMapper[KeyCode.A] = EnumCommand.SelectItemLeft;
-            uiKeyMapper[KeyCode.D] = EnumCommand.SelectItemRight;
-            uiKeyMapper[KeyCode.W] = EnumCommand.SelectItemUp;
-            uiKeyMapper[KeyCode.S] = EnumCommand.SelectItemDown;
-            uiKeyMapper[KeyCode.K] = EnumCommand.Enter;
-            uiKeyMapper[KeyCode.L] = EnumCommand.Back;
-            uiKeyMapper[KeyCode.I] = EnumCommand.OptionMenu;
-
-            uiKeyMapper[KeyCode.LeftArrow] = EnumCommand.SelectItemLeft;
-            uiKeyMapper[KeyCode.RightArrow] = EnumCommand.SelectItemRight;
-            uiKeyMapper[KeyCode.UpArrow] = EnumCommand.SelectItemUp;
-            uiKeyMapper[KeyCode.DownArrow] = EnumCommand.SelectItemDown;
-            uiKeyMapper[KeyCode.Return] = EnumCommand.Enter;
-            uiKeyMapper[KeyCode.Escape] = EnumCommand.Back;
-            uiKeyMapper[KeyCode.RightShift] = EnumCommand.OptionMenu;
-            uiKeyMapper[KeyCode.LeftShift] = EnumCommand.OptionMenu;
-
-            if (Application.platform == RuntimePlatform.PSP2)
-            {
-                uiKeyMapper[Common.PSVitaKey.Left] = EnumCommand.SelectItemLeft;
-                uiKeyMapper[Common.PSVitaKey.Right] = EnumCommand.SelectItemRight;
-                uiKeyMapper[Common.PSVitaKey.Up] = EnumCommand.SelectItemUp;
-                uiKeyMapper[Common.PSVitaKey.Down] = EnumCommand.SelectItemDown;
-                uiKeyMapper[Common.PSVitaKey.Circle] = EnumCommand.Enter;
-                uiKeyMapper[Common.PSVitaKey.Cross] = EnumCommand.Back;
-                uiKeyMapper[Common.PSVitaKey.Triangle] = EnumCommand.OptionMenu;
-            }
-
-            //PC XBOX
-
-            //uiKeyMapper[Common.PC_XBOXKEY.Left] = EnumCommand.SelectItemLeft;
-            //uiKeyMapper[Common.PSVitaKey.Right] = EnumCommand.SelectItemRight;
-            //uiKeyMapper[Common.PSVitaKey.Up] = EnumCommand.SelectItemUp;
-            //uiKeyMapper[Common.PSVitaKey.Down] = EnumCommand.SelectItemDown;
-            uiKeyMapper[Common.PC_XBOXKEY.MenuBtn] = EnumCommand.Enter;
-            uiKeyMapper[Common.PC_XBOXKEY.ViewBtn] = EnumCommand.Back;
-            uiKeyMapper[Common.PC_XBOXKEY.Y] = EnumCommand.OptionMenu;
-        }
-    }
-}
diff --git a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NesGamingScheme.cs b/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NesGamingScheme.cs
deleted file mode 100644
index d66360b9..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NesGamingScheme.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-namespace AxibugEmuOnline.Client
-{
-    public class NesGamingScheme : ControlScheme
-    {
-        public override void SetUIKeys(Dictionary<KeyCode, EnumCommand> uiKeyMapper)
-        {
-            uiKeyMapper[KeyCode.Escape] = EnumCommand.OptionMenu;
-
-            if (Application.platform == RuntimePlatform.PSP2)
-            {
-                uiKeyMapper[Common.PSVitaKey.L] = EnumCommand.OptionMenu;
-                uiKeyMapper[Common.PSVitaKey.R] = EnumCommand.OptionMenu;
-            }
-
-            //PC XBOX
-            uiKeyMapper[Common.PC_XBOXKEY.Y] = EnumCommand.OptionMenu;
-        }
-    }
-
-    public static partial class ControlSchemeSetts
-    {
-        public static NesGamingScheme NES { get; private set; } = new NesGamingScheme();
-    }
-}
diff --git a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NormalScheme.cs b/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NormalScheme.cs
deleted file mode 100644
index b1d36b89..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NormalScheme.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace AxibugEmuOnline.Client
-{
-
-    public class NormalScheme : ControlScheme
-    {
-    }
-
-    public static partial class ControlSchemeSetts
-    {
-        public static NormalScheme Normal { get; private set; } = new NormalScheme();
-    }
-}
diff --git a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger.meta
similarity index 100%
rename from AxibugEmuOnline.Client/Assets/Script/ControlSchemes.meta
rename to AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger.meta
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/CommandChanger.cs b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/CommandChanger.cs
new file mode 100644
index 00000000..a5c98e1d
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/CommandChanger.cs
@@ -0,0 +1,12 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace AxibugEmuOnline.Client
+{
+    public abstract class CommandChanger : IKeyMapperChanger
+    {
+        public string Name { get; private set; }
+
+        public abstract object GetConfig();
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/ControlScheme.cs.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/CommandChanger.cs.meta
similarity index 100%
rename from AxibugEmuOnline.Client/Assets/Script/ControlSchemes/ControlScheme.cs.meta
rename to AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/CommandChanger.cs.meta
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs
new file mode 100644
index 00000000..cb62ac53
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs
@@ -0,0 +1,10 @@
+namespace AxibugEmuOnline.Client
+{
+    public class GamingChanger : CommandChanger
+    {
+        public override object GetConfig()
+        {
+            return "UI_InGame";
+        }
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NormalScheme.cs.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs.meta
similarity index 83%
rename from AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NormalScheme.cs.meta
rename to AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs.meta
index 41f00f7c..9eb3de0c 100644
--- a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NormalScheme.cs.meta
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: d43d5934b9afba14782405dc1b6eb455
+guid: e5b6687e9412f174d82b2c15f1efc4a4
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy.meta
new file mode 100644
index 00000000..c26d03bb
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d5a7a9a2191170e49b387c0487288ae9
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs
new file mode 100644
index 00000000..250cee93
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs
@@ -0,0 +1,25 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace AxibugEmuOnline.Client
+{
+    public class GamingChanger_Legacy : CommandChanger
+    {
+        Dictionary<KeyCode, EnumCommand> m_uiKeyMapper = new Dictionary<KeyCode, EnumCommand>();
+        public GamingChanger_Legacy()
+        {
+            m_uiKeyMapper[KeyCode.Escape] = EnumCommand.OptionMenu;
+
+            if (Application.platform == RuntimePlatform.PSP2)
+            {
+                m_uiKeyMapper[Common.PSVitaKey.L] = EnumCommand.OptionMenu;
+                m_uiKeyMapper[Common.PSVitaKey.R] = EnumCommand.OptionMenu;
+            }
+
+            //PC XBOX
+            m_uiKeyMapper[Common.PC_XBOXKEY.Y] = EnumCommand.OptionMenu;
+        }
+
+        public override object GetConfig() => m_uiKeyMapper;
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NesGamingScheme.cs.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs.meta
similarity index 83%
rename from AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NesGamingScheme.cs.meta
rename to AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs.meta
index b87af5ce..014e1117 100644
--- a/AxibugEmuOnline.Client/Assets/Script/ControlSchemes/NesGamingScheme.cs.meta
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: a90914c97f6349a4e96302cc0ceeeed0
+guid: c8339ffab20bfea4cbc7d3aa440c3fdb
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs
new file mode 100644
index 00000000..2d328d99
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs
@@ -0,0 +1,58 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using UnityEngine;
+
+namespace AxibugEmuOnline.Client
+{
+
+    public class NormalChanger_Legacy : CommandChanger
+    {
+        Dictionary<KeyCode, EnumCommand> m_uiKeyMapper = new Dictionary<KeyCode, EnumCommand>();
+        public NormalChanger_Legacy()
+        {
+            m_uiKeyMapper[KeyCode.A] = EnumCommand.SelectItemLeft;
+            m_uiKeyMapper[KeyCode.D] = EnumCommand.SelectItemRight;
+            m_uiKeyMapper[KeyCode.W] = EnumCommand.SelectItemUp;
+            m_uiKeyMapper[KeyCode.S] = EnumCommand.SelectItemDown;
+            m_uiKeyMapper[KeyCode.K] = EnumCommand.Enter;
+            m_uiKeyMapper[KeyCode.L] = EnumCommand.Back;
+            m_uiKeyMapper[KeyCode.I] = EnumCommand.OptionMenu;
+
+            m_uiKeyMapper[KeyCode.LeftArrow] = EnumCommand.SelectItemLeft;
+            m_uiKeyMapper[KeyCode.RightArrow] = EnumCommand.SelectItemRight;
+            m_uiKeyMapper[KeyCode.UpArrow] = EnumCommand.SelectItemUp;
+            m_uiKeyMapper[KeyCode.DownArrow] = EnumCommand.SelectItemDown;
+            m_uiKeyMapper[KeyCode.Return] = EnumCommand.Enter;
+            m_uiKeyMapper[KeyCode.Escape] = EnumCommand.Back;
+            m_uiKeyMapper[KeyCode.RightShift] = EnumCommand.OptionMenu;
+            m_uiKeyMapper[KeyCode.LeftShift] = EnumCommand.OptionMenu;
+
+            if (Application.platform == RuntimePlatform.PSP2)
+            {
+                m_uiKeyMapper[Common.PSVitaKey.Left] = EnumCommand.SelectItemLeft;
+                m_uiKeyMapper[Common.PSVitaKey.Right] = EnumCommand.SelectItemRight;
+                m_uiKeyMapper[Common.PSVitaKey.Up] = EnumCommand.SelectItemUp;
+                m_uiKeyMapper[Common.PSVitaKey.Down] = EnumCommand.SelectItemDown;
+                m_uiKeyMapper[Common.PSVitaKey.Circle] = EnumCommand.Enter;
+                m_uiKeyMapper[Common.PSVitaKey.Cross] = EnumCommand.Back;
+                m_uiKeyMapper[Common.PSVitaKey.Triangle] = EnumCommand.OptionMenu;
+            }
+
+            //PC XBOX
+
+            //m_uiKeyMapper[Common.PC_XBOXKEY.Left] = EnumCommand.SelectItemLeft;
+            //m_uiKeyMapper[Common.PSVitaKey.Right] = EnumCommand.SelectItemRight;
+            //m_uiKeyMapper[Common.PSVitaKey.Up] = EnumCommand.SelectItemUp;
+            //m_uiKeyMapper[Common.PSVitaKey.Down] = EnumCommand.SelectItemDown;
+            m_uiKeyMapper[Common.PC_XBOXKEY.MenuBtn] = EnumCommand.Enter;
+            m_uiKeyMapper[Common.PC_XBOXKEY.ViewBtn] = EnumCommand.Back;
+            m_uiKeyMapper[Common.PC_XBOXKEY.Y] = EnumCommand.OptionMenu;
+        }
+
+        public override object GetConfig() => m_uiKeyMapper;
+    }
+
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs.meta
new file mode 100644
index 00000000..2740c3f1
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b8790f215d873d044aa8d00bacdee237
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs
new file mode 100644
index 00000000..7ea16b2a
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs
@@ -0,0 +1,10 @@
+namespace AxibugEmuOnline.Client
+{
+    public class NormalChanger : CommandChanger
+    {
+        public override object GetConfig()
+        {
+            return "UI_Normal";
+        }
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs.meta
new file mode 100644
index 00000000..51b84083
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8aa965a6a15aa1a4195977111b1ec13b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs
index b16b04f2..5e9c626a 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs
@@ -71,7 +71,7 @@ namespace AxibugEmuOnline.Client.Manager
             InGameUI.Instance.Hide();
             LaunchUI.Instance.ShowMainMenu();
 
-            ControlScheme.Current = ControlSchemeSetts.Normal;
+            CommandDispatcher.Instance.Current = CommandDispatcher.Instance.Normal;
         }
 
         public void ResetGame()
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
index d84123eb..20c79108 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
@@ -135,7 +135,7 @@ namespace AxibugEmuOnline.Client
 
         public void SetupScheme()
         {
-            ControlScheme.Current = ControlSchemeSetts.NES;
+            CommandDispatcher.Instance.Current = CommandDispatcher.Instance.Gaming;
         }
 
         public void LoadState(object state)
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
index 1a874a79..a9b0c342 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
@@ -12,11 +12,47 @@ namespace AxibugEmuOnline.Client
         /// <summary> ��ռע�����,ָ��ᱻ�б������һ�������ռ </summary>
         List<CommandExecuter> m_registerHigh = new List<CommandExecuter>();
 
-        Dictionary<KeyCode, EnumCommand> m_keyMapper = new Dictionary<KeyCode, EnumCommand>();
+        ICommandListener m_listener;
+        /// <summary> ��׼UI���� </summary>
+        public IKeyMapperChanger Normal { get; private set; }
+        /// <summary> ��Ϸ��UI���� </summary>
+        public IKeyMapperChanger Gaming { get; private set; }
+
+        public bool LegacyInput;
+
+        private IKeyMapperChanger m_current;
+        public IKeyMapperChanger Current
+        {
+            get => m_current;
+            set
+            {
+                m_current = value;
+
+                SetKeyMapper(m_current);
+            }
+        }
 
         private void Awake()
         {
             Instance = this;
+
+            //��ʼ��command������
+            if (LegacyInput)
+                m_listener = new CommandListener_Legacy();
+            else
+                m_listener = new CommandListener();
+
+            //��ʼ����λ�޸���
+            if (LegacyInput)
+            {
+                Normal = new NormalChanger_Legacy();
+                Gaming = new GamingChanger_Legacy();
+            }
+            else
+            {
+                Normal = new NormalChanger();
+                Gaming = new GamingChanger();
+            }
         }
 
         private void OnDestroy()
@@ -51,40 +87,21 @@ namespace AxibugEmuOnline.Client
         readonly List<CommandExecuter> oneFrameRegister = new List<CommandExecuter>();
         private void Update()
         {
-            foreach (var item in m_keyMapper)
-            {
-                peekRegister(oneFrameRegister);
+            peekRegister(oneFrameRegister);
+            m_listener.Update(oneFrameRegister);
 
-                if (Input.GetKeyDown(item.Key))
-                {
-                    foreach (var controller in oneFrameRegister)
-                    {
-                        if (!controller.Enable) continue;
-                        controller.ExecuteCommand(item.Value, false);
-                    }
-                }
-                if (Input.GetKeyUp(item.Key))
-                {
-                    foreach (var controller in oneFrameRegister)
-                    {
-                        if (!controller.Enable) continue;
-                        controller.ExecuteCommand(item.Value, true);
-                    }
-                }
-            }
-
-            //��λӳ�����Ҫ�ڰ�����Ӧ�Ķ�ջ��������,��ֹ�������޸�����
+            //��λӳ���ڰ�����Ӧ�Ķ�ջ��������,��ֹ�������޸�����
             if (m_waitMapperSetting != null)
             {
-                m_keyMapper = m_waitMapperSetting;
+                m_listener.ApplyKeyMapper(m_waitMapperSetting);
                 m_waitMapperSetting = null;
             }
         }
 
-        private Dictionary<KeyCode, EnumCommand> m_waitMapperSetting = null;
-        public void SetKeyMapper(Dictionary<KeyCode, EnumCommand> mapper)
+        IKeyMapperChanger m_waitMapperSetting = null;
+        void SetKeyMapper(IKeyMapperChanger keyMapChanger)
         {
-            m_waitMapperSetting = mapper;
+            m_waitMapperSetting = keyMapChanger;
         }
 
         private List<CommandExecuter> peekRegister(List<CommandExecuter> results)
@@ -114,7 +131,6 @@ namespace AxibugEmuOnline.Client
             return results;
         }
 
-
 #if UNITY_EDITOR
         public void GetRegisters(out IReadOnlyList<CommandExecuter> normal, out IReadOnlyList<CommandExecuter> alone)
         {
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs
new file mode 100644
index 00000000..e7ee8dd6
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+namespace AxibugEmuOnline.Client
+{
+    public class CommandListener : ICommandListener
+    {
+        private PlayerInput m_uiInput;
+        private IEnumerable<CommandExecuter> m_executers;
+
+        public CommandListener()
+        {
+            m_uiInput = GameObject.FindGameObjectWithTag("UIInput").GetComponent<PlayerInput>();
+            m_uiInput.onActionTriggered += M_uiInput_onActionTriggered;
+        }
+        public void Update(IEnumerable<CommandExecuter> executer)
+        {
+            m_executers = executer;
+        }
+
+        private void M_uiInput_onActionTriggered(InputAction.CallbackContext obj)
+        {
+            CommandState? cs = null;
+            switch (obj.action.phase)
+            {
+                case InputActionPhase.Started:
+                    cs = new CommandState { Cancel = false, Cmd = ToCommandEnum(obj.action.name) };
+                    break;
+                case InputActionPhase.Canceled:
+                    cs = new CommandState { Cancel = true, Cmd = ToCommandEnum(obj.action.name) };
+                    break;
+            }
+            if (!cs.HasValue) return;
+
+            foreach (var exec in m_executers)
+            {
+                if (!exec.Enable) continue;
+                exec.ExecuteCommand(cs.Value.Cmd, cs.Value.Cancel);
+            }
+        }
+
+        public void ApplyKeyMapper(IKeyMapperChanger changer)
+        {
+            var actionMapName = (string)changer.GetConfig();
+            m_uiInput.SwitchCurrentActionMap(actionMapName);
+        }
+
+        EnumCommand ToCommandEnum(string actionName)
+        {
+            return actionName switch
+            {
+                "SelectItemLeft" => EnumCommand.SelectItemLeft,
+                "SelectItemRight" => EnumCommand.SelectItemRight,
+                "SelectItemUp" => EnumCommand.SelectItemUp,
+                "SelectItemDown" => EnumCommand.SelectItemDown,
+                "Enter" => EnumCommand.Enter,
+                "Back" => EnumCommand.Back,
+                "OptionMenu" => EnumCommand.OptionMenu,
+                _ => throw new Exception("Not Support Action")
+            };
+        }
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta
new file mode 100644
index 00000000..98279440
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a493da4af70f32a43b3c558d94cf23a4
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs
new file mode 100644
index 00000000..8598135b
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs
@@ -0,0 +1,38 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace AxibugEmuOnline.Client
+{
+    public class CommandListener_Legacy : ICommandListener
+    {
+        Dictionary<KeyCode, EnumCommand> m_keyMapper = new Dictionary<KeyCode, EnumCommand>();
+        List<CommandState> m_commands = new List<CommandState>();
+        IEnumerable<CommandState> GetCommand()
+        {
+            m_commands.Clear();
+            foreach (var item in m_keyMapper)
+            {
+                if (Input.GetKeyDown(item.Key)) m_commands.Add(new CommandState { Cmd = item.Value, Cancel = false });
+                if (Input.GetKeyUp(item.Key)) m_commands.Add(new CommandState { Cmd = item.Value, Cancel = true });
+            }
+
+            return m_commands;
+        }
+        public void ApplyKeyMapper(IKeyMapperChanger changer)
+        {
+            var cfg = (Dictionary<KeyCode, EnumCommand>)changer.GetConfig();
+            m_keyMapper = cfg;
+        }
+
+        public void Update(IEnumerable<CommandExecuter> executers)
+        {
+            foreach (var cmd in GetCommand())
+            {
+                foreach (var executer in executers)
+                {
+                    executer.ExecuteCommand(cmd.Cmd, cmd.Cancel);
+                }
+            }
+        }
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs.meta
new file mode 100644
index 00000000..772b3c2e
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0c54554335d283d4ca61e01335c58665
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/ICommandListener.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/ICommandListener.cs
new file mode 100644
index 00000000..11861229
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/ICommandListener.cs
@@ -0,0 +1,24 @@
+using System.Collections.Generic;
+
+namespace AxibugEmuOnline.Client
+{
+    public interface IKeyMapperChanger
+    {
+        object GetConfig();
+    }
+    public interface ICommandListener
+    {
+        /// <summary>
+        /// 应用键位设置
+        /// </summary>
+        /// <param name="changer"></param>
+        void ApplyKeyMapper(IKeyMapperChanger changer);
+        void Update(IEnumerable<CommandExecuter> commands);
+    }
+
+    public struct CommandState
+    {
+        public EnumCommand Cmd;
+        public bool Cancel;
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/ICommandListener.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/ICommandListener.cs.meta
new file mode 100644
index 00000000..c0418c61
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/ICommandListener.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 16e65b8db21c226419b57118ec1f56ff
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI.cs b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI.cs
index 48ee3933..d64cdaa5 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/InGameUI/InGameUI.cs
@@ -124,7 +124,7 @@ namespace AxibugEmuOnline.Client
             App.roomMgr.SendLeavnRoom();
             App.emu.StopGame();
 
-            ControlScheme.Current = ControlSchemeSetts.Normal;
+            CommandDispatcher.Instance.Current = CommandDispatcher.Instance.Normal;
         }
     }
 }
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/LaunchUI.cs b/AxibugEmuOnline.Client/Assets/Script/UI/LaunchUI.cs
index 2b301746..9ad8905f 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/LaunchUI.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/LaunchUI.cs
@@ -36,7 +36,7 @@ namespace AxibugEmuOnline.Client
 
         private void Start()
         {
-            ControlScheme.Current = ControlSchemeSetts.Normal;
+            CommandDispatcher.Instance.Current = CommandDispatcher.Instance.Normal;
         }
 
         public void HideMainMenu()
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs
index e6f4d05c..3aa908d5 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs
@@ -125,7 +125,7 @@ namespace AxibugEmuOnline.Client
             }
         }
 
-        ControlScheme m_lastCS;
+        IKeyMapperChanger m_lastCS;
         public void Pop<T>(List<T> menus, int defaultIndex = 0) where T : OptionMenu
         {
             ReleaseRuntimeMenus();
@@ -160,8 +160,8 @@ namespace AxibugEmuOnline.Client
                     0.3f
                     ).SetEase(Ease.OutCubic);
 
-                m_lastCS = ControlScheme.Current;
-                ControlScheme.Current = ControlSchemeSetts.Normal;
+                m_lastCS = CommandDispatcher.Instance.Current;
+                CommandDispatcher.Instance.Current = CommandDispatcher.Instance.Normal;
             }
 
         }
@@ -192,7 +192,7 @@ namespace AxibugEmuOnline.Client
 
                 m_bPoped = false;
 
-                ControlScheme.Current = m_lastCS;
+                CommandDispatcher.Instance.Current = m_lastCS;
 
                 OnHide?.Invoke();
             }
diff --git a/AxibugEmuOnline.Client/ProjectSettings/ProjectSettings.asset b/AxibugEmuOnline.Client/ProjectSettings/ProjectSettings.asset
index 641bd9f5..ed6fd664 100644
--- a/AxibugEmuOnline.Client/ProjectSettings/ProjectSettings.asset
+++ b/AxibugEmuOnline.Client/ProjectSettings/ProjectSettings.asset
@@ -744,7 +744,7 @@ PlayerSettings:
     m_VersionCode: 1
     m_VersionName: 
   apiCompatibilityLevel: 3
-  activeInputHandler: 0
+  activeInputHandler: 2
   cloudProjectId: 
   framebufferDepthMemorylessMode: 0
   qualitySettingsNames: []
diff --git a/AxibugEmuOnline.Client/ProjectSettings/TagManager.asset b/AxibugEmuOnline.Client/ProjectSettings/TagManager.asset
index 1c92a784..e8cbe7e6 100644
--- a/AxibugEmuOnline.Client/ProjectSettings/TagManager.asset
+++ b/AxibugEmuOnline.Client/ProjectSettings/TagManager.asset
@@ -3,7 +3,8 @@
 --- !u!78 &1
 TagManager:
   serializedVersion: 2
-  tags: []
+  tags:
+  - UIInput
   layers:
   - Default
   - TransparentFX

From dbce3721941630ea12d0de0cc7f2a1b14706ef38 Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Fri, 22 Nov 2024 18:59:48 +0800
Subject: [PATCH 03/10] =?UTF-8?q?=E5=BC=95=E5=85=A5=E6=BB=A4=E9=95=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Assets/Scene/AxibugEmuOnline.Client.unity | 167 +++++++++-
 .../Assets/Scene/Emu_NES.unity                | 182 -----------
 .../Scene/New Render Texture.renderTexture    |  38 ---
 .../Script/AxibugEmuOnline.Client.asmdef      |   3 +-
 .../Emu_NES.unity.meta => Script/Filter.meta} |   3 +-
 .../Script/Filter/FixingPixelArtGrille.cs     |  26 ++
 .../Filter/FixingPixelArtGrille.cs.meta       |  11 +
 .../Script/Filter/FixingPixelArtGrille.shader | 301 ++++++++++++++++++
 .../Filter/FixingPixelArtGrille.shader.meta   |  10 +
 .../Script/Filter/GameCamera Profile.asset    |  32 ++
 .../Filter/GameCamera Profile.asset.meta}     |   4 +-
 ...irtuNesDraw.mat => NesEmulator_Screen.mat} |   2 +-
 ...w.mat.meta => NesEmulator_Screen.mat.meta} |   0
 ...sDraw.shader => NesEmulator_Screen.shader} |   4 +-
 ...er.meta => NesEmulator_Screen.shader.meta} |   0
 AxibugEmuOnline.Client/Packages/manifest.json |   1 +
 .../Packages/packages-lock.json               |   9 +
 .../ProjectSettings/EditorBuildSettings.asset |   2 +-
 .../ProjectSettings/ProjectSettings.asset     |  26 +-
 19 files changed, 574 insertions(+), 247 deletions(-)
 delete mode 100644 AxibugEmuOnline.Client/Assets/Scene/Emu_NES.unity
 delete mode 100644 AxibugEmuOnline.Client/Assets/Scene/New Render Texture.renderTexture
 rename AxibugEmuOnline.Client/Assets/{Scene/Emu_NES.unity.meta => Script/Filter.meta} (67%)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset
 rename AxibugEmuOnline.Client/Assets/{Scene/New Render Texture.renderTexture.meta => Script/Filter/GameCamera Profile.asset.meta} (64%)
 rename AxibugEmuOnline.Client/Assets/Script/NesEmulator/{VirtuNesDraw.mat => NesEmulator_Screen.mat} (98%)
 rename AxibugEmuOnline.Client/Assets/Script/NesEmulator/{VirtuNesDraw.mat.meta => NesEmulator_Screen.mat.meta} (100%)
 rename AxibugEmuOnline.Client/Assets/Script/NesEmulator/{VirtuaNesDraw.shader => NesEmulator_Screen.shader} (95%)
 rename AxibugEmuOnline.Client/Assets/Script/NesEmulator/{VirtuaNesDraw.shader.meta => NesEmulator_Screen.shader.meta} (100%)

diff --git a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
index f587967d..d80e2e7f 100644
--- a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
+++ b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
@@ -196,7 +196,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 1335662459}
-  m_RootOrder: 1
+  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!224 &246947326 stripped
 RectTransform:
@@ -13379,6 +13379,7 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
   - {fileID: 1639312037}
+  - {fileID: 1475480929}
   - {fileID: 74796459}
   - {fileID: 1427887270}
   - {fileID: 1599240741}
@@ -13426,6 +13427,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 4471d8231d16ba3469228e09d4cb3a81, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  LegacyInput: 0
 --- !u!4 &1427887270
 Transform:
   m_ObjectHideFlags: 0
@@ -13438,8 +13440,163 @@ Transform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 1335662459}
-  m_RootOrder: 2
+  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1475480928
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1475480929}
+  - component: {fileID: 1475480931}
+  - component: {fileID: 1475480930}
+  - component: {fileID: 1475480932}
+  m_Layer: 5
+  m_Name: GameCamera
+  m_TagString: MainCamera
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1475480929
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1475480928}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -13.45, y: 0, z: 6.23}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1335662459}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1475480930
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1475480928}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  sharedProfile: {fileID: 11400000, guid: 17060e2d2f9e5c340a526f08317e5a98, type: 2}
+  isGlobal: 1
+  blendDistance: 0
+  weight: 1
+  priority: 0
+--- !u!20 &1475480931
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1475480928}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 1
+  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+  m_projectionMatrixMode: 1
+  m_GateFitMode: 2
+  m_FOVAxisMode: 0
+  m_SensorSize: {x: 36, y: 24}
+  m_LensShift: {x: 0, y: 0}
+  m_FocalLength: 50
+  m_NormalizedViewPortRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  near clip plane: 0.3
+  far clip plane: 1000
+  field of view: 60
+  orthographic: 1
+  orthographic size: 5
+  m_Depth: -2
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 32
+  m_RenderingPath: -1
+  m_TargetTexture: {fileID: 0}
+  m_TargetDisplay: 0
+  m_TargetEye: 3
+  m_HDR: 1
+  m_AllowMSAA: 1
+  m_AllowDynamicResolution: 0
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 1
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
+--- !u!114 &1475480932
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1475480928}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  volumeTrigger: {fileID: 0}
+  volumeLayer:
+    serializedVersion: 2
+    m_Bits: 32
+  stopNaNPropagation: 1
+  finalBlitToCameraTarget: 0
+  antialiasingMode: 0
+  temporalAntialiasing:
+    jitterSpread: 0.75
+    sharpness: 0.25
+    stationaryBlending: 0.95
+    motionBlending: 0.85
+  subpixelMorphologicalAntialiasing:
+    quality: 2
+  fastApproximateAntialiasing:
+    fastMode: 0
+    keepAlpha: 0
+  fog:
+    enabled: 1
+    excludeSkybox: 1
+  debugLayer:
+    lightMeter:
+      width: 512
+      height: 256
+      showCurves: 1
+    histogram:
+      width: 512
+      height: 256
+      channel: 3
+    waveform:
+      exposure: 0.12
+      height: 256
+    vectorscope:
+      size: 256
+      exposure: 0.12
+    overlaySettings:
+      linearDepth: 0
+      motionColorIntensity: 4
+      motionGridSize: 64
+      colorBlindnessType: 0
+      colorBlindnessStrength: 1
+  m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2}
+  m_ShowToolkit: 0
+  m_ShowCustomSorter: 0
+  breakBeforeColorGrading: 0
+  m_BeforeTransparentBundles: []
+  m_BeforeStackBundles:
+  - assemblyQualifiedName: FixingPixelArtGrille, AxibugEmuOnline.Client, Version=0.0.0.0,
+      Culture=neutral, PublicKeyToken=null
+  m_AfterStackBundles: []
 --- !u!1 &1498586261
 GameObject:
   m_ObjectHideFlags: 3
@@ -13580,7 +13737,7 @@ RectTransform:
   - {fileID: 1318590597}
   - {fileID: 939125854}
   m_Father: {fileID: 1335662459}
-  m_RootOrder: 3
+  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -13600,7 +13757,7 @@ GameObject:
   - component: {fileID: 1639312035}
   m_Layer: 0
   m_Name: UICamera
-  m_TagString: MainCamera
+  m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
@@ -13622,7 +13779,7 @@ Camera:
   m_GameObject: {fileID: 1639312034}
   m_Enabled: 1
   serializedVersion: 2
-  m_ClearFlags: 1
+  m_ClearFlags: 3
   m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
   m_projectionMatrixMode: 1
   m_GateFitMode: 2
diff --git a/AxibugEmuOnline.Client/Assets/Scene/Emu_NES.unity b/AxibugEmuOnline.Client/Assets/Scene/Emu_NES.unity
deleted file mode 100644
index 0c2051e2..00000000
--- a/AxibugEmuOnline.Client/Assets/Scene/Emu_NES.unity
+++ /dev/null
@@ -1,182 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!29 &1
-OcclusionCullingSettings:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_OcclusionBakeSettings:
-    smallestOccluder: 5
-    smallestHole: 0.25
-    backfaceThreshold: 100
-  m_SceneGUID: 00000000000000000000000000000000
-  m_OcclusionCullingData: {fileID: 0}
---- !u!104 &2
-RenderSettings:
-  m_ObjectHideFlags: 0
-  serializedVersion: 9
-  m_Fog: 0
-  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
-  m_FogMode: 3
-  m_FogDensity: 0.01
-  m_LinearFogStart: 0
-  m_LinearFogEnd: 300
-  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
-  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
-  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
-  m_AmbientIntensity: 1
-  m_AmbientMode: 0
-  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
-  m_SkyboxMaterial: {fileID: 0}
-  m_HaloStrength: 0.5
-  m_FlareStrength: 1
-  m_FlareFadeSpeed: 3
-  m_HaloTexture: {fileID: 0}
-  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
-  m_DefaultReflectionMode: 0
-  m_DefaultReflectionResolution: 128
-  m_ReflectionBounces: 1
-  m_ReflectionIntensity: 1
-  m_CustomReflection: {fileID: 0}
-  m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
-  m_UseRadianceAmbientProbe: 0
---- !u!157 &3
-LightmapSettings:
-  m_ObjectHideFlags: 0
-  serializedVersion: 12
-  m_GIWorkflowMode: 1
-  m_GISettings:
-    serializedVersion: 2
-    m_BounceScale: 1
-    m_IndirectOutputScale: 1
-    m_AlbedoBoost: 1
-    m_EnvironmentLightingMode: 0
-    m_EnableBakedLightmaps: 1
-    m_EnableRealtimeLightmaps: 0
-  m_LightmapEditorSettings:
-    serializedVersion: 12
-    m_Resolution: 2
-    m_BakeResolution: 40
-    m_AtlasSize: 1024
-    m_AO: 0
-    m_AOMaxDistance: 1
-    m_CompAOExponent: 1
-    m_CompAOExponentDirect: 0
-    m_ExtractAmbientOcclusion: 0
-    m_Padding: 2
-    m_LightmapParameters: {fileID: 0}
-    m_LightmapsBakeMode: 1
-    m_TextureCompression: 1
-    m_FinalGather: 0
-    m_FinalGatherFiltering: 1
-    m_FinalGatherRayCount: 256
-    m_ReflectionCompression: 2
-    m_MixedBakeMode: 2
-    m_BakeBackend: 1
-    m_PVRSampling: 1
-    m_PVRDirectSampleCount: 32
-    m_PVRSampleCount: 512
-    m_PVRBounces: 2
-    m_PVREnvironmentSampleCount: 256
-    m_PVREnvironmentReferencePointCount: 2048
-    m_PVRFilteringMode: 1
-    m_PVRDenoiserTypeDirect: 1
-    m_PVRDenoiserTypeIndirect: 1
-    m_PVRDenoiserTypeAO: 1
-    m_PVRFilterTypeDirect: 0
-    m_PVRFilterTypeIndirect: 0
-    m_PVRFilterTypeAO: 0
-    m_PVREnvironmentMIS: 1
-    m_PVRCulling: 1
-    m_PVRFilteringGaussRadiusDirect: 1
-    m_PVRFilteringGaussRadiusIndirect: 5
-    m_PVRFilteringGaussRadiusAO: 2
-    m_PVRFilteringAtrousPositionSigmaDirect: 0.5
-    m_PVRFilteringAtrousPositionSigmaIndirect: 2
-    m_PVRFilteringAtrousPositionSigmaAO: 1
-    m_ExportTrainingData: 0
-    m_TrainingDataDestination: TrainingData
-    m_LightProbeSampleCountMultiplier: 4
-  m_LightingDataAsset: {fileID: 0}
-  m_LightingSettings: {fileID: 0}
---- !u!196 &4
-NavMeshSettings:
-  serializedVersion: 2
-  m_ObjectHideFlags: 0
-  m_BuildSettings:
-    serializedVersion: 2
-    agentTypeID: 0
-    agentRadius: 0.5
-    agentHeight: 2
-    agentSlope: 45
-    agentClimb: 0.4
-    ledgeDropHeight: 0
-    maxJumpAcrossDistance: 0
-    minRegionArea: 2
-    manualCellSize: 0
-    cellSize: 0.16666667
-    manualTileSize: 0
-    tileSize: 256
-    accuratePlacement: 0
-    maxJobWorkers: 0
-    preserveTilesOutsideBounds: 0
-    debug:
-      m_Flags: 0
-  m_NavMeshData: {fileID: 0}
---- !u!1001 &4232056520998800727
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 0}
-    m_Modifications:
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536011, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 4232056521131536013, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
-      propertyPath: m_Name
-      value: NesEmulator
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: f8bea3f8aa351bb46ada33b2274729ea, type: 3}
diff --git a/AxibugEmuOnline.Client/Assets/Scene/New Render Texture.renderTexture b/AxibugEmuOnline.Client/Assets/Scene/New Render Texture.renderTexture
deleted file mode 100644
index ec610c1c..00000000
--- a/AxibugEmuOnline.Client/Assets/Scene/New Render Texture.renderTexture	
+++ /dev/null
@@ -1,38 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!84 &8400000
-RenderTexture:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: New Render Texture
-  m_ImageContentsHash:
-    serializedVersion: 2
-    Hash: 00000000000000000000000000000000
-  m_ForcedFallbackFormat: 4
-  m_DownscaleFallback: 0
-  m_IsAlphaChannelOptional: 0
-  serializedVersion: 3
-  m_Width: 256
-  m_Height: 240
-  m_AntiAliasing: 1
-  m_MipCount: -1
-  m_DepthFormat: 0
-  m_ColorFormat: 8
-  m_MipMap: 0
-  m_GenerateMips: 1
-  m_SRGB: 0
-  m_UseDynamicScale: 0
-  m_BindMS: 0
-  m_EnableCompatibleFormat: 1
-  m_TextureSettings:
-    serializedVersion: 2
-    m_FilterMode: 1
-    m_Aniso: 0
-    m_MipBias: 0
-    m_WrapU: 1
-    m_WrapV: 1
-    m_WrapW: 1
-  m_Dimension: 2
-  m_VolumeDepth: 1
diff --git a/AxibugEmuOnline.Client/Assets/Script/AxibugEmuOnline.Client.asmdef b/AxibugEmuOnline.Client/Assets/Script/AxibugEmuOnline.Client.asmdef
index 177a08c9..281aca37 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AxibugEmuOnline.Client.asmdef
+++ b/AxibugEmuOnline.Client/Assets/Script/AxibugEmuOnline.Client.asmdef
@@ -5,7 +5,8 @@
         "GUID:390a2c4058e5c304a87e8be70c84d80b",
         "GUID:085dc26d74e6f994a924d401ea41a5a8",
         "GUID:0a45db2096af23647aaafe5b70ccb4d7",
-        "GUID:75469ad4d38634e559750d17036d5f7c"
+        "GUID:75469ad4d38634e559750d17036d5f7c",
+        "GUID:d60799ab2a985554ea1a39cd38695018"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
diff --git a/AxibugEmuOnline.Client/Assets/Scene/Emu_NES.unity.meta b/AxibugEmuOnline.Client/Assets/Script/Filter.meta
similarity index 67%
rename from AxibugEmuOnline.Client/Assets/Scene/Emu_NES.unity.meta
rename to AxibugEmuOnline.Client/Assets/Script/Filter.meta
index 17bcd88f..c9855764 100644
--- a/AxibugEmuOnline.Client/Assets/Scene/Emu_NES.unity.meta
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter.meta
@@ -1,5 +1,6 @@
 fileFormatVersion: 2
-guid: 3dba71db67877594a9b5b77059205ec8
+guid: 65f05f831c65bb042a8db3bf301f54ec
+folderAsset: yes
 DefaultImporter:
   externalObjects: {}
   userData: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
new file mode 100644
index 00000000..c82008cf
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
@@ -0,0 +1,26 @@
+using UnityEngine;
+using UnityEngine.Rendering.PostProcessing;
+
+[System.Serializable]
+[PostProcess(typeof(FixingPixelArtGrilleRenderer), PostProcessEvent.BeforeStack, "Filter/FixingPixelArtGrille")]
+public sealed class FixingPixelArtGrille : PostProcessEffectSettings
+{
+    // ����������������IJ���
+}
+
+public sealed class FixingPixelArtGrilleRenderer : PostProcessEffectRenderer<FixingPixelArtGrille>
+{
+    private Shader shader;
+    private Material material;
+
+    public override void Init()
+    {
+        shader = Shader.Find("PostEffect/FixingPixcelArtGrille");
+        material = new Material(shader);
+    }
+
+    public override void Render(PostProcessRenderContext context)
+    {
+        context.command.Blit(context.source, context.destination, material);
+    }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs.meta
new file mode 100644
index 00000000..559b9bb1
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e88ab71ab1a47d048ba0e45b742f6140
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader
new file mode 100644
index 00000000..349f5a6c
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader
@@ -0,0 +1,301 @@
+
+Shader "PostEffect/FixingPixcelArtGrille"
+{
+    Properties
+    {
+        _MainTex ("Base (RGB)", 2D) = "white" {}
+    }
+    SubShader
+    {
+        Pass
+        {
+            CGPROGRAM
+
+            #pragma vertex vert_img
+            #pragma fragment frag
+            #include "UnityCG.cginc"
+
+            sampler2D _MainTex;
+            float4 _MainTex_TexelSize;
+
+//
+// PUBLIC DOMAIN CRT STYLED SCAN-LINE SHADER
+//
+//   by Timothy Lottes
+//
+// This is more along the style of a really good CGA arcade monitor.
+// With RGB inputs instead of NTSC.
+// The shadow mask example has the mask rotated 90 degrees for less chromatic aberration.
+//
+// Left it unoptimized to show the theory behind the algorithm.
+//
+// It is an example what I personally would want as a display option for pixel art games.
+// Please take and use, change, or whatever.
+//
+
+#define iResolution float2(1920,1080)
+
+// Emulated input resolution.
+  // Optimize for resize.
+#define res (float2(272.0,240.0)*1.5)
+
+// Hardness of scanline.
+//  -8.0 = soft
+// -16.0 = medium
+#define hardScan -10.0
+
+// Hardness of pixels in scanline.
+// -2.0 = soft
+// -4.0 = hard
+#define hardPix -2.0
+
+// Hardness of short vertical bloom.
+//  -1.0 = wide to the point of clipping (bad)
+//  -1.5 = wide
+//  -4.0 = not very wide at all
+#define hardBloomScan -4.0
+
+// Hardness of short horizontal bloom.
+//  -0.5 = wide to the point of clipping (bad)
+//  -1.0 = wide
+//  -2.0 = not very wide at all
+#define hardBloomPix -1.5
+
+// Amount of small bloom effect.
+//  1.0/1.0 = only bloom
+//  1.0/16.0 = what I think is a good amount of small bloom
+//  0.0     = no bloom
+#define bloomAmount 1.0/1.0
+
+// Display warp.
+// 0.0 = none
+// 1.0/8.0 = extreme
+#define warp float2(1.0/64.0,1.0/24.0)
+
+// Amount of shadow mask.
+#define maskDark 0.5
+#define maskLight 1.5
+
+//------------------------------------------------------------------------
+
+float fract(float x){
+  return x-floor(x);
+}
+
+// sRGB to Linear.
+// Assuing using sRGB typed textures this should not be needed.
+float ToLinear1(float c){return(c<=0.04045)?c/12.92:pow((c+0.055)/1.055,2.4);}
+float3 ToLinear(float3 c){return float3(ToLinear1(c.r),ToLinear1(c.g),ToLinear1(c.b));}
+
+// Linear to sRGB.
+// Assuing using sRGB typed textures this should not be needed.
+float ToSrgb1(float c){return(c<0.0031308?c*12.92:1.055*pow(c,0.41666)-0.055);}
+float3 ToSrgb(float3 c){return float3(ToSrgb1(c.r),ToSrgb1(c.g),ToSrgb1(c.b));}
+
+// Testing only, something to help generate a dark signal for bloom test.
+// Set to zero, or remove Test() if using this shader.
+#if 1
+ float3 Test(float3 c){return c*(1.0/64.0)+c*c*c;}
+#else
+ float3 Test(float3 c){return c;}
+#endif
+
+// Nearest emulated sample given floating point position and texel offset.
+// Also zero's off screen.
+float3 Fetch( float2 pos,float2 off){
+  pos=floor(pos*res+off)/res;
+  if(max(abs(pos.x-0.5),abs(pos.y-0.5))>0.5)return float3(0.0,0.0,0.0);
+  return Test(ToLinear(tex2D(_MainTex,pos.xy).rgb));}
+
+// Distance in emulated pixels to nearest texel.
+float2 Dist(float2 pos){pos=pos*res;return -((pos-floor(pos))-float2(0.5,0.5));}
+    
+// 1D Gaussian.
+float Gaus(float pos,float scale){return exp2(scale*pos*pos);}
+
+// 3-tap Gaussian filter along horz line.
+float3 Horz3(float2 pos,float off){
+  float3 b=Fetch(pos,float2(-1.0,off));
+  float3 c=Fetch(pos,float2( 0.0,off));
+  float3 d=Fetch(pos,float2( 1.0,off));
+  float dst=Dist(pos).x;
+  // Convert distance to weight.
+  float scale=hardPix;
+  float wb=Gaus(dst-1.0,scale);
+  float wc=Gaus(dst+0.0,scale);
+  float wd=Gaus(dst+1.0,scale);
+  // Return filtered sample.
+  return (b*wb+c*wc+d*wd)/(wb+wc+wd);}
+
+// 5-tap Gaussian filter along horz line.
+float3 Horz5(float2 pos,float off){
+  float3 a=Fetch(pos,float2(-2.0,off));
+  float3 b=Fetch(pos,float2(-1.0,off));
+  float3 c=Fetch(pos,float2( 0.0,off));
+  float3 d=Fetch(pos,float2( 1.0,off));
+  float3 e=Fetch(pos,float2( 2.0,off));
+  float dst=Dist(pos).x;
+  // Convert distance to weight.
+  float scale=hardPix;
+  float wa=Gaus(dst-2.0,scale);
+  float wb=Gaus(dst-1.0,scale);
+  float wc=Gaus(dst+0.0,scale);
+  float wd=Gaus(dst+1.0,scale);
+  float we=Gaus(dst+2.0,scale);
+  // Return filtered sample.
+  return (a*wa+b*wb+c*wc+d*wd+e*we)/(wa+wb+wc+wd+we);}
+
+// 7-tap Gaussian filter along horz line.
+float3 Horz7(float2 pos,float off){
+  float3 a=Fetch(pos,float2(-3.0,off));
+  float3 b=Fetch(pos,float2(-2.0,off));
+  float3 c=Fetch(pos,float2(-1.0,off));
+  float3 d=Fetch(pos,float2( 0.0,off));
+  float3 e=Fetch(pos,float2( 1.0,off));
+  float3 f=Fetch(pos,float2( 2.0,off));
+  float3 g=Fetch(pos,float2( 3.0,off));
+  float dst=Dist(pos).x;
+  // Convert distance to weight.
+  float scale=hardBloomPix;
+  float wa=Gaus(dst-3.0,scale);
+  float wb=Gaus(dst-2.0,scale);
+  float wc=Gaus(dst-1.0,scale);
+  float wd=Gaus(dst+0.0,scale);
+  float we=Gaus(dst+1.0,scale);
+  float wf=Gaus(dst+2.0,scale);
+  float wg=Gaus(dst+3.0,scale);
+  // Return filtered sample.
+  return (a*wa+b*wb+c*wc+d*wd+e*we+f*wf+g*wg)/(wa+wb+wc+wd+we+wf+wg);}
+
+// Return scanline weight.
+float Scan(float2 pos,float off){
+  float dst=Dist(pos).y;
+  return Gaus(dst+off,hardScan);}
+
+// Return scanline weight for bloom.
+float BloomScan(float2 pos,float off){
+  float dst=Dist(pos).y;
+  return Gaus(dst+off,hardBloomScan);}
+
+// Allow nearest three lines to effect pixel.
+float3 Tri(float2 pos){
+  float3 a=Horz3(pos,-1.0);
+  float3 b=Horz5(pos, 0.0);
+  float3 c=Horz3(pos, 1.0);
+  float wa=Scan(pos,-1.0);
+  float wb=Scan(pos, 0.0);
+  float wc=Scan(pos, 1.0);
+  return a*wa+b*wb+c*wc;}
+
+// Small bloom.
+float3 Bloom(float2 pos){
+  float3 a=Horz5(pos,-2.0);
+  float3 b=Horz7(pos,-1.0);
+  float3 c=Horz7(pos, 0.0);
+  float3 d=Horz7(pos, 1.0);
+  float3 e=Horz5(pos, 2.0);
+  float wa=BloomScan(pos,-2.0);
+  float wb=BloomScan(pos,-1.0);
+  float wc=BloomScan(pos, 0.0);
+  float wd=BloomScan(pos, 1.0);
+  float we=BloomScan(pos, 2.0);
+  return a*wa+b*wb+c*wc+d*wd+e*we;}
+
+// Distortion of scanlines, and end of screen alpha.
+float2 Warp(float2 pos){
+  
+  pos=pos*2.0-1.0;    
+  pos*=float2(1.0+(pos.y*pos.y)*warp.x,1.0+(pos.x*pos.x)*warp.y);
+  return pos*0.5+0.5;}
+
+#if 0
+// Very compressed TV style shadow mask.
+float3 Mask(float2 pos){
+  float line=maskLight;
+  float odd=0.0;
+  if(fract(pos.x/6.0)<0.5)odd=1.0;
+  if(fract((pos.y+odd)/2.0)<0.5)line=maskDark;  
+  pos.x=fract(pos.x/3.0);
+  float3 mask=float3(maskDark,maskDark,maskDark);
+  if(pos.x<0.333)mask.r=maskLight;
+  else if(pos.x<0.666)mask.g=maskLight;
+  else mask.b=maskLight;
+  mask*=line;
+  return mask;}        
+#endif
+
+#if 1
+// Aperture-grille.
+float3 Mask(float2 pos){
+  pos.x=fract(pos.x/3.0);
+  float3 mask=float3(maskDark,maskDark,maskDark);
+  if(pos.x<0.333)mask.r=maskLight;
+  else if(pos.x<0.666)mask.g=maskLight;
+  else mask.b=maskLight;
+  return mask;}        
+#endif
+
+#if 0
+// Stretched VGA style shadow mask (same as prior shaders).
+float3 Mask(float2 pos){
+  pos.x+=pos.y*3.0;
+  float3 mask=float3(maskDark,maskDark,maskDark);
+  pos.x=fract(pos.x/6.0);
+  if(pos.x<0.333)mask.r=maskLight;
+  else if(pos.x<0.666)mask.g=maskLight;
+  else mask.b=maskLight;
+  return mask;}    
+#endif
+
+#if 0
+// VGA style shadow mask.
+float3 Mask(float2 pos){
+  pos.xy=floor(pos.xy*float2(1.0,0.5));
+  pos.x+=pos.y*3.0;
+  float3 mask=float3(maskDark,maskDark,maskDark);
+  pos.x=fract(pos.x/6.0);
+  if(pos.x<0.333)mask.r=maskLight;
+  else if(pos.x<0.666)mask.g=maskLight;
+  else mask.b=maskLight;
+  return mask;}    
+#endif
+
+
+// Draw dividing bars.
+float Bar(float pos,float bar){pos-=bar;return pos*pos<4.0?0.0:1.0;}
+
+// Entry.
+float4 mainImage(float2 fragCoord){
+
+float4 fragColor = float4(1,1,1,1);
+float2 pos=Warp(fragCoord.xy/iResolution.xy);
+
+  fragColor.rgb=Tri(pos)*Mask(fragCoord.xy); 
+
+  	fragColor.rgb+=Bloom(pos)*bloomAmount;    
+  
+  fragColor.a=1.0;  
+  fragColor.rgb=ToSrgb(fragColor.rgb);
+
+  return fragColor;
+}
+            
+            struct v2f
+            {
+                float4 pos : POSITION;
+                float2 uv : TEXCOORD0;
+            };
+
+            fixed4 frag (v2f i) : SV_Target
+            {
+                float2 pos = iResolution.xy*i.uv;
+                fixed4 col = mainImage(pos);
+                return col;
+            }
+            ENDCG
+        }
+    }
+}
+
+
+
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader.meta
new file mode 100644
index 00000000..56f21ba2
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 57c38351364c92e45aef2dc17245b3ce
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  preprocessorOverride: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset
new file mode 100644
index 00000000..4c7223ea
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset	
@@ -0,0 +1,32 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-3536514882628332180
+MonoBehaviour:
+  m_ObjectHideFlags: 3
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e88ab71ab1a47d048ba0e45b742f6140, type: 3}
+  m_Name: FixingPixelArtGrille
+  m_EditorClassIdentifier: 
+  active: 1
+  enabled:
+    overrideState: 1
+    value: 1
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3}
+  m_Name: GameCamera Profile
+  m_EditorClassIdentifier: 
+  settings:
+  - {fileID: -3536514882628332180}
diff --git a/AxibugEmuOnline.Client/Assets/Scene/New Render Texture.renderTexture.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset.meta
similarity index 64%
rename from AxibugEmuOnline.Client/Assets/Scene/New Render Texture.renderTexture.meta
rename to AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset.meta
index c3d71478..5376e6d4 100644
--- a/AxibugEmuOnline.Client/Assets/Scene/New Render Texture.renderTexture.meta	
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset.meta	
@@ -1,8 +1,8 @@
 fileFormatVersion: 2
-guid: 5d4a385f133f9074583d64ab2172a03b
+guid: 17060e2d2f9e5c340a526f08317e5a98
 NativeFormatImporter:
   externalObjects: {}
-  mainObjectFileID: 8400000
+  mainObjectFileID: 11400000
   userData: 
   assetBundleName: 
   assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuNesDraw.mat b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.mat
similarity index 98%
rename from AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuNesDraw.mat
rename to AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.mat
index 105f7309..eed7c2bf 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuNesDraw.mat
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.mat
@@ -7,7 +7,7 @@ Material:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: VirtuNesDraw
+  m_Name: NesEmulator_Screen
   m_Shader: {fileID: 4800000, guid: b351396ff606116478d7f4412abe4e2e, type: 3}
   m_ShaderKeywords: 
   m_LightmapFlags: 4
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuNesDraw.mat.meta b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.mat.meta
similarity index 100%
rename from AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuNesDraw.mat.meta
rename to AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.mat.meta
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuaNesDraw.shader b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.shader
similarity index 95%
rename from AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuaNesDraw.shader
rename to AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.shader
index 2fd508a8..288358b2 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuaNesDraw.shader
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.shader
@@ -1,4 +1,4 @@
-Shader "AleinUI/Clip"
+Shader "NesEmulator/Screen"
 {
     Properties
     {
@@ -107,8 +107,6 @@
 
                 mapUV.x = lerp(start,end, mapUV.x);
 
-
-
                 half4 color = tex2D(_MainTex,mapUV);
                 
                 //float rawIndex = color.b;
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuaNesDraw.shader.meta b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.shader.meta
similarity index 100%
rename from AxibugEmuOnline.Client/Assets/Script/NesEmulator/VirtuaNesDraw.shader.meta
rename to AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator_Screen.shader.meta
diff --git a/AxibugEmuOnline.Client/Packages/manifest.json b/AxibugEmuOnline.Client/Packages/manifest.json
index 4d5424d1..b63e2fca 100644
--- a/AxibugEmuOnline.Client/Packages/manifest.json
+++ b/AxibugEmuOnline.Client/Packages/manifest.json
@@ -3,6 +3,7 @@
     "com.unity.2d.sprite": "1.0.0",
     "com.unity.ide.visualstudio": "2.0.22",
     "com.unity.inputsystem": "1.3.0",
+    "com.unity.postprocessing": "3.2.2",
     "com.unity.ugui": "1.0.0",
     "com.unity.modules.ai": "1.0.0",
     "com.unity.modules.androidjni": "1.0.0",
diff --git a/AxibugEmuOnline.Client/Packages/packages-lock.json b/AxibugEmuOnline.Client/Packages/packages-lock.json
index 3ea0dc19..5ab3c71a 100644
--- a/AxibugEmuOnline.Client/Packages/packages-lock.json
+++ b/AxibugEmuOnline.Client/Packages/packages-lock.json
@@ -31,6 +31,15 @@
       },
       "url": "https://packages.unity.cn"
     },
+    "com.unity.postprocessing": {
+      "version": "3.2.2",
+      "depth": 0,
+      "source": "registry",
+      "dependencies": {
+        "com.unity.modules.physics": "1.0.0"
+      },
+      "url": "https://packages.unity.cn"
+    },
     "com.unity.test-framework": {
       "version": "1.1.31",
       "depth": 1,
diff --git a/AxibugEmuOnline.Client/ProjectSettings/EditorBuildSettings.asset b/AxibugEmuOnline.Client/ProjectSettings/EditorBuildSettings.asset
index 1ec9bba4..4da0947b 100644
--- a/AxibugEmuOnline.Client/ProjectSettings/EditorBuildSettings.asset
+++ b/AxibugEmuOnline.Client/ProjectSettings/EditorBuildSettings.asset
@@ -8,7 +8,7 @@ EditorBuildSettings:
   - enabled: 1
     path: Assets/Scene/AxibugEmuOnline.Client.unity
     guid: eb0c18a619175384d95147898a43054b
-  - enabled: 1
+  - enabled: 0
     path: Assets/Scene/Emu_NES.unity
     guid: 3dba71db67877594a9b5b77059205ec8
   m_configObjects: {}
diff --git a/AxibugEmuOnline.Client/ProjectSettings/ProjectSettings.asset b/AxibugEmuOnline.Client/ProjectSettings/ProjectSettings.asset
index ed6fd664..e83ab020 100644
--- a/AxibugEmuOnline.Client/ProjectSettings/ProjectSettings.asset
+++ b/AxibugEmuOnline.Client/ProjectSettings/ProjectSettings.asset
@@ -640,21 +640,21 @@ PlayerSettings:
   webGLThreadsSupport: 0
   webGLDecompressionFallback: 0
   scriptingDefineSymbols:
-    1: DOTWEEN
+    1: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
     4: DOTWEEN
-    7: DOTWEEN;ODIN_INSPECTOR;ODIN_INSPECTOR_3;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_EDITOR_ONLY
-    13: DOTWEEN
-    14: DOTWEEN
-    19: DOTWEEN
-    21: DOTWEEN
-    25: DOTWEEN
-    27: DOTWEEN
-    28: DOTWEEN
-    29: DOTWEEN
-    30: DOTWEEN
+    7: DOTWEEN;ODIN_INSPECTOR;ODIN_INSPECTOR_3;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_EDITOR_ONLY;UNITY_POST_PROCESSING_STACK_V2
+    13: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
+    14: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
+    19: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
+    21: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
+    25: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
+    27: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
+    28: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
+    29: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
+    30: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
     31: DOTWEEN
-    32: DOTWEEN
-    33: DOTWEEN
+    32: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
+    33: DOTWEEN;UNITY_POST_PROCESSING_STACK_V2
   additionalCompilerArguments: {}
   platformArchitecture: {}
   scriptingBackend:

From 0a62f9c8f81076e1426742c26a4a7edc6dc9eaa3 Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Tue, 26 Nov 2024 16:54:51 +0800
Subject: [PATCH 04/10] fuck InputSystem!

---
 .../Assets/Resources/InputSystem.meta         |   8 -
 .../InputSystem/UI_InputSetting.inputactions  | 304 ------------------
 .../UI_InputSetting.inputactions.meta         |  14 -
 .../Assets/Resources/NES/NesEmulator.prefab   |   1 +
 .../Assets/Scene/AxibugEmuOnline.Client.unity |  95 ------
 AxibugEmuOnline.Client/Assets/Script/App.cs   |   8 +-
 .../Assets/Script/IEmuCore.cs                 |   1 +
 .../Script/IkeyMapperChanger/GamingChanger.cs |  10 -
 .../IkeyMapperChanger/GamingChanger.cs.meta   |  11 -
 .../Script/IkeyMapperChanger/NormalChanger.cs |  10 -
 .../IkeyMapperChanger/NormalChanger.cs.meta   |  11 -
 .../Script/NesEmulator/CoreSupporter.cs       |   7 +-
 .../Script/NesEmulator/NesControllerMapper.cs | 264 +++++++++------
 .../Assets/Script/NesEmulator/NesEmulator.cs  |   7 +-
 .../UI/CommandDispatcher/CommandDispatcher.cs |  20 +-
 .../UI/CommandDispatcher/CommandExcuter.cs    |   3 +
 .../UI/CommandDispatcher/CommandListener.cs   |  65 ----
 .../CommandDispatcher/CommandListener.cs.meta |  11 -
 .../Supporter/ControllerState.cs              |   1 +
 AxibugEmuOnline.Client/Packages/manifest.json |   1 -
 .../Packages/packages-lock.json               |   9 -
 21 files changed, 188 insertions(+), 673 deletions(-)
 delete mode 100644 AxibugEmuOnline.Client/Assets/Resources/InputSystem.meta
 delete mode 100644 AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions
 delete mode 100644 AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions.meta
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs.meta
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs.meta
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs
 delete mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta

diff --git a/AxibugEmuOnline.Client/Assets/Resources/InputSystem.meta b/AxibugEmuOnline.Client/Assets/Resources/InputSystem.meta
deleted file mode 100644
index 38637690..00000000
--- a/AxibugEmuOnline.Client/Assets/Resources/InputSystem.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 6178d336be6488b46aed623405e79f7b
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions b/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions
deleted file mode 100644
index 5b0afe02..00000000
--- a/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions
+++ /dev/null
@@ -1,304 +0,0 @@
-{
-    "name": "New Controls",
-    "maps": [
-        {
-            "name": "UI_Normal",
-            "id": "9a397a4f-4d88-492f-a918-bf9b8d3be756",
-            "actions": [
-                {
-                    "name": "SelectItemLeft",
-                    "type": "Button",
-                    "id": "107019fe-240c-46ff-8c62-cb385ef8b9af",
-                    "expectedControlType": "Button",
-                    "processors": "",
-                    "interactions": "",
-                    "initialStateCheck": false
-                },
-                {
-                    "name": "SelectItemRight",
-                    "type": "Button",
-                    "id": "826dd3f1-2cf8-4169-97c8-dfb56b850143",
-                    "expectedControlType": "Button",
-                    "processors": "",
-                    "interactions": "",
-                    "initialStateCheck": false
-                },
-                {
-                    "name": "SelectItemUp",
-                    "type": "Button",
-                    "id": "505dabb4-91f7-430c-8696-092690269639",
-                    "expectedControlType": "Button",
-                    "processors": "",
-                    "interactions": "",
-                    "initialStateCheck": false
-                },
-                {
-                    "name": "SelectItemDown",
-                    "type": "Button",
-                    "id": "b3da8633-7f50-44b3-8302-50706e589307",
-                    "expectedControlType": "Button",
-                    "processors": "",
-                    "interactions": "",
-                    "initialStateCheck": false
-                },
-                {
-                    "name": "Enter",
-                    "type": "Button",
-                    "id": "0bdf3154-e1db-4044-af50-cacb3764a07c",
-                    "expectedControlType": "Button",
-                    "processors": "",
-                    "interactions": "",
-                    "initialStateCheck": false
-                },
-                {
-                    "name": "Back",
-                    "type": "Button",
-                    "id": "68074d67-61a1-4a4d-bd68-8398b0e7afe3",
-                    "expectedControlType": "Button",
-                    "processors": "",
-                    "interactions": "",
-                    "initialStateCheck": false
-                },
-                {
-                    "name": "OptionMenu",
-                    "type": "Button",
-                    "id": "64b67280-c530-4e38-b3ff-8d0177591396",
-                    "expectedControlType": "Button",
-                    "processors": "",
-                    "interactions": "",
-                    "initialStateCheck": false
-                }
-            ],
-            "bindings": [
-                {
-                    "name": "",
-                    "id": "fc724bf2-7736-419c-9f46-19bd45a0d276",
-                    "path": "<Keyboard>/a",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "SelectItemLeft",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "02f4433e-4417-4fef-b178-a616e2941311",
-                    "path": "<Keyboard>/leftArrow",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "SelectItemLeft",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "cb874e72-d3db-4024-b9fb-37190acd9568",
-                    "path": "<Keyboard>/d",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "SelectItemRight",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "646b923b-4d3d-4b5c-9dd2-0119e9d3e2c5",
-                    "path": "<Keyboard>/rightArrow",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "SelectItemRight",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "28fa0139-d5a2-4e26-87af-2043e01234e6",
-                    "path": "<Keyboard>/w",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "SelectItemUp",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "4474efdf-70ff-4826-883c-2fdf9f96e78e",
-                    "path": "<Keyboard>/upArrow",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "SelectItemUp",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "392a8cbc-71f6-4282-b945-4c7b3d17ba3a",
-                    "path": "<Keyboard>/s",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "SelectItemDown",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "f30b6fb3-147e-4997-b628-fab3f635192b",
-                    "path": "<Keyboard>/downArrow",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "SelectItemDown",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "70c6db12-432b-482d-99a1-71e002c30157",
-                    "path": "<Keyboard>/k",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "Enter",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "48d5c450-6ac3-40fb-8ff4-66c7f3b3a00b",
-                    "path": "<Keyboard>/enter",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "Enter",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "ef83ae7c-a809-4f23-a206-102199a5ede3",
-                    "path": "<Keyboard>/l",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "Back",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "14b503c8-80a1-458c-9e0f-a3fa38f314be",
-                    "path": "<Keyboard>/backspace",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "Back",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "e1e12f45-fb41-4b78-adbf-add2881bd4b1",
-                    "path": "<Keyboard>/i",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "OptionMenu",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "0b010e17-3581-42e6-90b1-f1bf728a3a0c",
-                    "path": "<Keyboard>/shift",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "OptionMenu",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                }
-            ]
-        },
-        {
-            "name": "UI_InGame",
-            "id": "2c8af03e-03e7-4553-81c6-dcff543cdcdc",
-            "actions": [
-                {
-                    "name": "OptionMenu",
-                    "type": "Button",
-                    "id": "cab3c346-07e2-4c0c-8377-cb934dd28bd3",
-                    "expectedControlType": "Button",
-                    "processors": "",
-                    "interactions": "",
-                    "initialStateCheck": false
-                }
-            ],
-            "bindings": [
-                {
-                    "name": "",
-                    "id": "28d4d045-1070-4ea0-be35-b5ffb1c33bcb",
-                    "path": "<Keyboard>/escape",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "Keyboard",
-                    "action": "OptionMenu",
-                    "isComposite": false,
-                    "isPartOfComposite": false
-                }
-            ]
-        }
-    ],
-    "controlSchemes": [
-        {
-            "name": "Keyboard",
-            "bindingGroup": "Keyboard",
-            "devices": [
-                {
-                    "devicePath": "<Keyboard>",
-                    "isOptional": false,
-                    "isOR": false
-                }
-            ]
-        },
-        {
-            "name": "UniversalGamePad",
-            "bindingGroup": "UniversalGamePad",
-            "devices": [
-                {
-                    "devicePath": "<Gamepad>",
-                    "isOptional": false,
-                    "isOR": false
-                }
-            ]
-        },
-        {
-            "name": "Xbox Controller",
-            "bindingGroup": "Xbox Controller",
-            "devices": [
-                {
-                    "devicePath": "<XInputController>",
-                    "isOptional": false,
-                    "isOR": false
-                }
-            ]
-        },
-        {
-            "name": "PlayStation Controller",
-            "bindingGroup": "PlayStation Controller",
-            "devices": [
-                {
-                    "devicePath": "<DualShockGamepad>",
-                    "isOptional": false,
-                    "isOR": false
-                }
-            ]
-        }
-    ]
-}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions.meta b/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions.meta
deleted file mode 100644
index e9c5b5a9..00000000
--- a/AxibugEmuOnline.Client/Assets/Resources/InputSystem/UI_InputSetting.inputactions.meta
+++ /dev/null
@@ -1,14 +0,0 @@
-fileFormatVersion: 2
-guid: eb413fd14a8483440af9652b7e4df5e1
-ScriptedImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 2
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
-  script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
-  generateWrapperCode: 0
-  wrapperCodePath: 
-  wrapperClassName: 
-  wrapperCodeNamespace: InputSystem
diff --git a/AxibugEmuOnline.Client/Assets/Resources/NES/NesEmulator.prefab b/AxibugEmuOnline.Client/Assets/Resources/NES/NesEmulator.prefab
index 29b2f605..81baa9f1 100644
--- a/AxibugEmuOnline.Client/Assets/Resources/NES/NesEmulator.prefab
+++ b/AxibugEmuOnline.Client/Assets/Resources/NES/NesEmulator.prefab
@@ -458,6 +458,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 39557e19783acee499ace6c68549e8f8, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  InputTemplate: {fileID: 0}
   VideoProvider: {fileID: 4232056520112715744}
   AudioProvider: {fileID: 9003897287163669553}
   m_bPause: 0
diff --git a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
index d80e2e7f..2da0c26f 100644
--- a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
+++ b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
@@ -13427,7 +13427,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 4471d8231d16ba3469228e09d4cb3a81, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  LegacyInput: 0
 --- !u!4 &1427887270
 Transform:
   m_ObjectHideFlags: 0
@@ -13731,7 +13730,6 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 0, y: 0, z: 0}
   m_Children:
-  - {fileID: 2073453794}
   - {fileID: 1983793178}
   - {fileID: 246947326}
   - {fileID: 1318590597}
@@ -13832,99 +13830,6 @@ RectTransform:
   m_CorrespondingSourceObject: {fileID: 1639091784002085428, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
   m_PrefabInstance: {fileID: 730698711}
   m_PrefabAsset: {fileID: 0}
---- !u!1 &2073453793
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 2073453794}
-  - component: {fileID: 2073453795}
-  m_Layer: 0
-  m_Name: UI_Input
-  m_TagString: UIInput
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &2073453794
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 2073453793}
-  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: -10799.999}
-  m_LocalScale: {x: 108, y: 108, z: 108}
-  m_Children: []
-  m_Father: {fileID: 1599240741}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &2073453795
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 2073453793}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Actions: {fileID: -944628639613478452, guid: eb413fd14a8483440af9652b7e4df5e1, type: 3}
-  m_NotificationBehavior: 3
-  m_UIInputModule: {fileID: 74796457}
-  m_DeviceLostEvent:
-    m_PersistentCalls:
-      m_Calls: []
-  m_DeviceRegainedEvent:
-    m_PersistentCalls:
-      m_Calls: []
-  m_ControlsChangedEvent:
-    m_PersistentCalls:
-      m_Calls: []
-  m_ActionEvents:
-  - m_PersistentCalls:
-      m_Calls: []
-    m_ActionId: 107019fe-240c-46ff-8c62-cb385ef8b9af
-    m_ActionName: UI_Normal/SelectItemLeft
-  - m_PersistentCalls:
-      m_Calls: []
-    m_ActionId: 826dd3f1-2cf8-4169-97c8-dfb56b850143
-    m_ActionName: UI_Normal/SelectItemRight
-  - m_PersistentCalls:
-      m_Calls: []
-    m_ActionId: 505dabb4-91f7-430c-8696-092690269639
-    m_ActionName: UI_Normal/SelectItemUp
-  - m_PersistentCalls:
-      m_Calls: []
-    m_ActionId: b3da8633-7f50-44b3-8302-50706e589307
-    m_ActionName: UI_Normal/SelectItemDown
-  - m_PersistentCalls:
-      m_Calls: []
-    m_ActionId: 0bdf3154-e1db-4044-af50-cacb3764a07c
-    m_ActionName: UI_Normal/Enter
-  - m_PersistentCalls:
-      m_Calls: []
-    m_ActionId: 68074d67-61a1-4a4d-bd68-8398b0e7afe3
-    m_ActionName: UI_Normal/Back
-  - m_PersistentCalls:
-      m_Calls: []
-    m_ActionId: 64b67280-c530-4e38-b3ff-8d0177591396
-    m_ActionName: UI_Normal/OptionMenu
-  - m_PersistentCalls:
-      m_Calls: []
-    m_ActionId: cab3c346-07e2-4c0c-8377-cb934dd28bd3
-    m_ActionName: UI_InGame/OptionMenu
-  m_NeverAutoSwitchControlSchemes: 0
-  m_DefaultControlScheme: Keyboard
-  m_DefaultActionMap: UI_Normal
-  m_SplitScreenIndex: -1
-  m_Camera: {fileID: 0}
 --- !u!1001 &1963501580473600373
 PrefabInstance:
   m_ObjectHideFlags: 0
diff --git a/AxibugEmuOnline.Client/Assets/Script/App.cs b/AxibugEmuOnline.Client/Assets/Script/App.cs
index 3afd9847..fe55e095 100644
--- a/AxibugEmuOnline.Client/Assets/Script/App.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/App.cs
@@ -5,7 +5,6 @@ using System.IO;
 using System.Threading.Tasks;
 using UnityEngine;
 using UnityEngine.Networking;
-using UnityEngine.Scripting;
 using static AxibugEmuOnline.Client.HttpAPI;
 using static AxibugEmuOnline.Client.Manager.LogManager;
 
@@ -38,11 +37,6 @@ namespace AxibugEmuOnline.Client.ClientCore
 #else
         public static string PersistentDataPath => Application.persistentDataPath;
 #endif
-
-
-
-        //[Preserve]
-        //[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)]
         public static void Init()
         {
             settings = new AppSettings();
@@ -162,7 +156,7 @@ namespace AxibugEmuOnline.Client.ClientCore
         }
         static void OnNoSugarNetLog(int LogLevel, string msg)
         {
-            E_LogType logType =(E_LogType)LogLevel;
+            E_LogType logType = (E_LogType)LogLevel;
             switch (logType)
             {
                 case E_LogType.Debug:
diff --git a/AxibugEmuOnline.Client/Assets/Script/IEmuCore.cs b/AxibugEmuOnline.Client/Assets/Script/IEmuCore.cs
index 68a5df83..694b5e9d 100644
--- a/AxibugEmuOnline.Client/Assets/Script/IEmuCore.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/IEmuCore.cs
@@ -15,6 +15,7 @@ namespace AxibugEmuOnline.Client
         void SetupScheme();
         void StartGame(RomFile romFile);
         void DoReset();
+        EnumPlatform Platform { get; }
         uint Frame { get; }
     }
 
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs
deleted file mode 100644
index cb62ac53..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace AxibugEmuOnline.Client
-{
-    public class GamingChanger : CommandChanger
-    {
-        public override object GetConfig()
-        {
-            return "UI_InGame";
-        }
-    }
-}
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs.meta
deleted file mode 100644
index 9eb3de0c..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/GamingChanger.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: e5b6687e9412f174d82b2c15f1efc4a4
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs
deleted file mode 100644
index 7ea16b2a..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace AxibugEmuOnline.Client
-{
-    public class NormalChanger : CommandChanger
-    {
-        public override object GetConfig()
-        {
-            return "UI_Normal";
-        }
-    }
-}
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs.meta
deleted file mode 100644
index 51b84083..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/NormalChanger.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 8aa965a6a15aa1a4195977111b1ec13b
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs
index bd6fc1dd..9dd81d2a 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs
@@ -1,5 +1,4 @@
 using AxibugEmuOnline.Client.ClientCore;
-using AxiReplay;
 using System;
 using System.IO;
 using System.Runtime.InteropServices;
@@ -57,7 +56,7 @@ namespace AxibugEmuOnline.Client
         }
 
         public EmulatorConfig Config { get; private set; } = new EmulatorConfig();
-
+        public NesControllerMapper ControllerMapper { get; private set; } = new NesControllerMapper();
         public void PrepareDirectory(string directPath)
         {
             Directory.CreateDirectory($"{App.PersistentDataPath}/{directPath}");
@@ -115,7 +114,7 @@ namespace AxibugEmuOnline.Client
                 }
                 else m_sampledState = default;
 
-                var localState = NesControllerMapper.Get().CreateState();
+                var localState = ControllerMapper.CreateState();
                 var rawData = ToNet(localState);
                 if (LastTestInput != rawData)
                 {
@@ -126,7 +125,7 @@ namespace AxibugEmuOnline.Client
             }
             else
             {
-                m_sampledState = NesControllerMapper.Get().CreateState();
+                m_sampledState = ControllerMapper.CreateState();
             }
         }
 
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs
index 66fb958d..3a5df6e4 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs
@@ -1,6 +1,5 @@
-using AxibugEmuOnline.Client.ClientCore;
-using System;
-using System.IO;
+using System;
+using System.Text;
 using UnityEngine;
 using VirtualNes.Core;
 
@@ -8,36 +7,10 @@ namespace AxibugEmuOnline.Client
 {
     public class NesControllerMapper
     {
-        private static readonly string ConfigFilePath = $"{App.PersistentDataPath}/NES/ControllerMapper.json";
-
-        public MapperSetter Player1 = new MapperSetter();
-        public MapperSetter Player2 = new MapperSetter();
-        public MapperSetter Player3 = new MapperSetter();
-        public MapperSetter Player4 = new MapperSetter();
-
-        public NesControllerMapper()
-        {
-            Player1.UP.keyCode = KeyCode.W;
-            Player1.DOWN.keyCode = KeyCode.S;
-            Player1.LEFT.keyCode = KeyCode.A;
-            Player1.RIGHT.keyCode = KeyCode.D;
-            Player1.B.keyCode = KeyCode.J;
-            Player1.A.keyCode = KeyCode.K;
-            Player1.SELECT.keyCode = KeyCode.V;
-            Player1.START.keyCode = KeyCode.B;
-
-            //PC XBOX
-            //Player1.B.keyCode = Common.PC_XBOXKEY.A;
-            //Player1.A.keyCode = Common.PC_XBOXKEY.B;
-            //Player1.SELECT.keyCode = Common.PC_XBOXKEY.ViewBtn;
-            //Player1.START.keyCode = Common.PC_XBOXKEY.MenuBtn;
-        }
-
-        public void Save()
-        {
-            var jsonStr = JsonUtility.ToJson(this);
-            File.WriteAllText(ConfigFilePath, jsonStr);
-        }
+        public MapperSetter Player1 = new MapperSetter(1);
+        public MapperSetter Player2 = new MapperSetter(2);
+        public MapperSetter Player3 = new MapperSetter(3);
+        public MapperSetter Player4 = new MapperSetter(4);
 
         public ControllerState CreateState()
         {
@@ -46,86 +19,189 @@ namespace AxibugEmuOnline.Client
             var state3 = Player3.GetButtons();
             var state4 = Player4.GetButtons();
 
-            return new ControllerState(state1, state2, state3, state4);
+            var result = new ControllerState(state1, state2, state3, state4);
+            return result;
         }
 
-        private static NesControllerMapper s_setting;
-        public static NesControllerMapper Get()
-        {
-            if (s_setting == null)
-            {
-                try
-                {
-                    var json = File.ReadAllText($"{App.PersistentDataPath}/Nes/ControllerMapper.json");
-                    s_setting = JsonUtility.FromJson<NesControllerMapper>(json);
-                }
-                catch
-                {
-                    s_setting = new NesControllerMapper();
-                }
-            }
-
-            return s_setting;
-        }
-
-        [Serializable]
         public class Mapper
         {
-            public EnumButtonType buttonType;
-            public KeyCode keyCode;
+            MapperSetter m_setter;
+            EnumButtonType m_buttonType;
+            IKeyListener m_keyListener;
+            int m_controllerIndex => m_setter.ControllerIndex;
 
-            public Mapper(EnumButtonType buttonType)
+            public Mapper(MapperSetter setter, EnumButtonType buttonType)
             {
-                this.buttonType = buttonType;
+                m_setter = setter;
+                m_buttonType = buttonType;
+
+                loadConfig();
+            }
+
+            private void loadConfig()
+            {
+                m_keyListener = MapperSetter.GetKey_Legacy(m_controllerIndex, m_buttonType);
+
+            }
+
+            public EnumButtonType SampleKey()
+            {
+                return m_keyListener.IsPressing() ? m_buttonType : 0;
             }
         }
 
-        [Serializable]
         public class MapperSetter
         {
-            public Mapper UP = new Mapper(EnumButtonType.UP);
-            public Mapper DOWN = new Mapper(EnumButtonType.DOWN);
-            public Mapper LEFT = new Mapper(EnumButtonType.LEFT);
-            public Mapper RIGHT = new Mapper(EnumButtonType.RIGHT);
-            public Mapper A = new Mapper(EnumButtonType.A);
-            public Mapper B = new Mapper(EnumButtonType.B);
-            public Mapper SELECT = new Mapper(EnumButtonType.SELECT);
-            public Mapper START = new Mapper(EnumButtonType.START);
-            public Mapper MIC = new Mapper(EnumButtonType.MIC);
+            /// <summary> 控制器序号(手柄1,2,3,4) </summary>
+            public int ControllerIndex { get; }
+            public Mapper UP { get; private set; }
+            public Mapper DOWN { get; private set; }
+            public Mapper LEFT { get; private set; }
+            public Mapper RIGHT { get; private set; }
+            public Mapper A { get; private set; }
+            public Mapper B { get; private set; }
+            public Mapper SELECT { get; private set; }
+            public Mapper START { get; private set; }
+            public Mapper MIC { get; private set; }
+
+            public MapperSetter(int controllerIndex)
+            {
+                ControllerIndex = controllerIndex;
+                UP = new Mapper(this, EnumButtonType.UP);
+                DOWN = new Mapper(this, EnumButtonType.DOWN);
+                LEFT = new Mapper(this, EnumButtonType.LEFT);
+                RIGHT = new Mapper(this, EnumButtonType.RIGHT);
+                A = new Mapper(this, EnumButtonType.A);
+                B = new Mapper(this, EnumButtonType.B);
+                SELECT = new Mapper(this, EnumButtonType.SELECT);
+                START = new Mapper(this, EnumButtonType.START);
+                MIC = new Mapper(this, EnumButtonType.MIC);
+            }
 
             public EnumButtonType GetButtons()
             {
                 EnumButtonType res = 0;
 
-                if (Input.GetKey(UP.keyCode))
-                    res |= EnumButtonType.UP;
-
-                if (Input.GetKey(DOWN.keyCode))
-                    res |= EnumButtonType.DOWN;
-
-                if (Input.GetKey(LEFT.keyCode))
-                    res |= EnumButtonType.LEFT;
-
-                if (Input.GetKey(RIGHT.keyCode))
-                    res |= EnumButtonType.RIGHT;
-
-                if (Input.GetKey(A.keyCode))
-                    res |= EnumButtonType.A;
-
-                if (Input.GetKey(B.keyCode))
-                    res |= EnumButtonType.B;
-
-                if (Input.GetKey(SELECT.keyCode))
-                    res |= EnumButtonType.SELECT;
-
-                if (Input.GetKey(START.keyCode))
-                    res |= EnumButtonType.START;
-
-                if (Input.GetKey(MIC.keyCode))
-                    res |= EnumButtonType.MIC;
+                res |= UP.SampleKey();
+                res |= DOWN.SampleKey();
+                res |= LEFT.SampleKey();
+                res |= RIGHT.SampleKey();
+                res |= A.SampleKey();
+                res |= B.SampleKey();
+                res |= SELECT.SampleKey();
+                res |= START.SampleKey();
+                res |= MIC.SampleKey();
 
                 return res;
             }
+
+            public static IKeyListener GetKey_Legacy(int controllerInput, EnumButtonType nesConBtnType)
+            {
+                string configKey = $"NES_{controllerInput}_{nesConBtnType}";
+
+                if (PlayerPrefs.HasKey(configKey))
+                {
+                    return new KeyListener_Legacy(PlayerPrefs.GetString(configKey));
+                }
+                else
+                {
+                    var defaultKeyCode = GetDefaultKey();
+                    PlayerPrefs.SetString(configKey, defaultKeyCode.ToString());
+                    return defaultKeyCode;
+                }
+
+                KeyListener_Legacy GetDefaultKey()
+                {
+                    switch (controllerInput)
+                    {
+                        case 1:
+                            if (nesConBtnType == EnumButtonType.LEFT) return new KeyListener_Legacy(KeyCode.A, KeyCode.Joystick1Button12);
+                            if (nesConBtnType == EnumButtonType.RIGHT) return new KeyListener_Legacy(KeyCode.D, KeyCode.Joystick1Button13);
+                            if (nesConBtnType == EnumButtonType.UP) return new KeyListener_Legacy(KeyCode.W, KeyCode.Joystick1Button10);
+                            if (nesConBtnType == EnumButtonType.DOWN) return new KeyListener_Legacy(KeyCode.S, KeyCode.Joystick1Button11);
+                            if (nesConBtnType == EnumButtonType.START) return new KeyListener_Legacy(KeyCode.B, KeyCode.Joystick1Button7);
+                            if (nesConBtnType == EnumButtonType.SELECT) return new KeyListener_Legacy(KeyCode.V, KeyCode.Joystick1Button6);
+                            if (nesConBtnType == EnumButtonType.A) return new KeyListener_Legacy(KeyCode.K, KeyCode.Joystick1Button1);
+                            if (nesConBtnType == EnumButtonType.B) return new KeyListener_Legacy(KeyCode.J, KeyCode.Joystick1Button2);
+                            if (nesConBtnType == EnumButtonType.MIC) return new KeyListener_Legacy(KeyCode.M, KeyCode.Joystick1Button12);
+                            break;
+                        case 2:
+                            if (nesConBtnType == EnumButtonType.LEFT) return new KeyListener_Legacy(KeyCode.Delete, KeyCode.Joystick2Button12);
+                            if (nesConBtnType == EnumButtonType.RIGHT) return new KeyListener_Legacy(KeyCode.PageDown, KeyCode.Joystick2Button13);
+                            if (nesConBtnType == EnumButtonType.UP) return new KeyListener_Legacy(KeyCode.Home, KeyCode.Joystick2Button10);
+                            if (nesConBtnType == EnumButtonType.DOWN) return new KeyListener_Legacy(KeyCode.End, KeyCode.Joystick2Button11);
+                            if (nesConBtnType == EnumButtonType.START) return new KeyListener_Legacy(KeyCode.PageUp, KeyCode.Joystick2Button7);
+                            if (nesConBtnType == EnumButtonType.SELECT) return new KeyListener_Legacy(KeyCode.Insert, KeyCode.Joystick2Button6);
+                            if (nesConBtnType == EnumButtonType.A) return new KeyListener_Legacy(KeyCode.Keypad5, KeyCode.Joystick2Button1);
+                            if (nesConBtnType == EnumButtonType.B) return new KeyListener_Legacy(KeyCode.Keypad4, KeyCode.Joystick2Button2);
+                            if (nesConBtnType == EnumButtonType.MIC) return new KeyListener_Legacy(KeyCode.KeypadPeriod, KeyCode.Joystick2Button12);
+                            break;
+                    }
+
+                    return default;
+                }
+
+            }
+        }
+
+        public interface IKeyListener
+        {
+            bool IsPressing();
+        }
+
+        public struct KeyListener_Legacy : IKeyListener
+        {
+            private KeyCode[] m_keys;
+
+            public KeyListener_Legacy(params KeyCode[] keys)
+            {
+                m_keys = keys;
+            }
+
+            /// <summary>
+            /// 从配置表字符串构建
+            /// </summary>
+            /// <param name="confStr">以:分割的键值字符串</param>
+            public KeyListener_Legacy(string confStr)
+            {
+                m_keys = new KeyCode[2];
+
+                var temp = confStr.Split(':');
+                m_keys = new KeyCode[temp.Length];
+                for (int i = 0; i < temp.Length; i++)
+                {
+                    if (int.TryParse(temp[i], out int result))
+                        m_keys[i] = (KeyCode)result;
+                }
+            }
+
+            public bool IsPressing()
+            {
+                if (m_keys == null || m_keys.Length == 0) return false;
+
+                foreach (var key in m_keys)
+                {
+                    if (Input.GetKey(key)) return true;
+                }
+
+                return false;
+            }
+
+            public override string ToString()
+            {
+                if (m_keys == null || m_keys.Length == 0) return string.Empty;
+                StringBuilder sb = new StringBuilder();
+                for (int i = 0; i < m_keys.Length; i++)
+                {
+                    var keyVal = (int)m_keys[i];
+                    sb.Append(keyVal);
+                    if (i != m_keys.Length - 1) sb.Append(':');
+                }
+
+                return sb.ToString();
+            }
         }
     }
+
+
 }
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
index 20c79108..fa78912a 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
@@ -1,5 +1,4 @@
 using AxibugEmuOnline.Client.ClientCore;
-using AxibugEmuOnline.Client.Common;
 using System;
 using System.Diagnostics;
 using System.IO;
@@ -12,6 +11,8 @@ namespace AxibugEmuOnline.Client
 {
     public class NesEmulator : MonoBehaviour, IEmuCore
     {
+        public EnumPlatform Platform => EnumPlatform.NES;
+
         //ģ��������ʵ��������
         public NES NesCore { get; private set; }
 
@@ -168,6 +169,8 @@ namespace AxibugEmuOnline.Client
             NesCore.LoadState(st);
         }
 
+        public uint Frame => NesCore.FrameCount;
+
 #if UNITY_EDITOR
         /// <summary>
         /// �༭����
@@ -197,7 +200,5 @@ namespace AxibugEmuOnline.Client
             UnityEditor.AssetDatabase.SaveAssets();
         }
 #endif
-
-        public uint Frame => NesCore.FrameCount;
     }
 }
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
index a9b0c342..1e651cc0 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
@@ -1,3 +1,4 @@
+using AxibugEmuOnline.Client.ClientCore;
 using System.Collections.Generic;
 using UnityEngine;
 
@@ -18,8 +19,6 @@ namespace AxibugEmuOnline.Client
         /// <summary> ��Ϸ��UI���� </summary>
         public IKeyMapperChanger Gaming { get; private set; }
 
-        public bool LegacyInput;
-
         private IKeyMapperChanger m_current;
         public IKeyMapperChanger Current
         {
@@ -37,22 +36,11 @@ namespace AxibugEmuOnline.Client
             Instance = this;
 
             //��ʼ��command������
-            if (LegacyInput)
-                m_listener = new CommandListener_Legacy();
-            else
-                m_listener = new CommandListener();
+            m_listener = new CommandListener_Legacy();
 
             //��ʼ����λ�޸���
-            if (LegacyInput)
-            {
-                Normal = new NormalChanger_Legacy();
-                Gaming = new GamingChanger_Legacy();
-            }
-            else
-            {
-                Normal = new NormalChanger();
-                Gaming = new GamingChanger();
-            }
+            Normal = new NormalChanger_Legacy();
+            Gaming = new GamingChanger_Legacy();
         }
 
         private void OnDestroy()
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs
index 68f1825c..992f95e3 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs
@@ -49,6 +49,8 @@ namespace AxibugEmuOnline.Client
 
         public void ExecuteCommand(EnumCommand cmd, bool cancel)
         {
+            if(cmd == EnumCommand.NONE) return;
+
             if (!cancel)
             {
                 switch (cmd)
@@ -118,6 +120,7 @@ namespace AxibugEmuOnline.Client
 
     public enum EnumCommand
     {
+        NONE,
         SelectItemLeft,
         SelectItemRight,
         SelectItemUp,
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs
deleted file mode 100644
index e7ee8dd6..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.InputSystem;
-
-namespace AxibugEmuOnline.Client
-{
-    public class CommandListener : ICommandListener
-    {
-        private PlayerInput m_uiInput;
-        private IEnumerable<CommandExecuter> m_executers;
-
-        public CommandListener()
-        {
-            m_uiInput = GameObject.FindGameObjectWithTag("UIInput").GetComponent<PlayerInput>();
-            m_uiInput.onActionTriggered += M_uiInput_onActionTriggered;
-        }
-        public void Update(IEnumerable<CommandExecuter> executer)
-        {
-            m_executers = executer;
-        }
-
-        private void M_uiInput_onActionTriggered(InputAction.CallbackContext obj)
-        {
-            CommandState? cs = null;
-            switch (obj.action.phase)
-            {
-                case InputActionPhase.Started:
-                    cs = new CommandState { Cancel = false, Cmd = ToCommandEnum(obj.action.name) };
-                    break;
-                case InputActionPhase.Canceled:
-                    cs = new CommandState { Cancel = true, Cmd = ToCommandEnum(obj.action.name) };
-                    break;
-            }
-            if (!cs.HasValue) return;
-
-            foreach (var exec in m_executers)
-            {
-                if (!exec.Enable) continue;
-                exec.ExecuteCommand(cs.Value.Cmd, cs.Value.Cancel);
-            }
-        }
-
-        public void ApplyKeyMapper(IKeyMapperChanger changer)
-        {
-            var actionMapName = (string)changer.GetConfig();
-            m_uiInput.SwitchCurrentActionMap(actionMapName);
-        }
-
-        EnumCommand ToCommandEnum(string actionName)
-        {
-            return actionName switch
-            {
-                "SelectItemLeft" => EnumCommand.SelectItemLeft,
-                "SelectItemRight" => EnumCommand.SelectItemRight,
-                "SelectItemUp" => EnumCommand.SelectItemUp,
-                "SelectItemDown" => EnumCommand.SelectItemDown,
-                "Enter" => EnumCommand.Enter,
-                "Back" => EnumCommand.Back,
-                "OptionMenu" => EnumCommand.OptionMenu,
-                _ => throw new Exception("Not Support Action")
-            };
-        }
-    }
-}
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta
deleted file mode 100644
index 98279440..00000000
--- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: a493da4af70f32a43b3c558d94cf23a4
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/ControllerState.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/ControllerState.cs
index 352e192d..d5e04faf 100644
--- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/ControllerState.cs
+++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/ControllerState.cs
@@ -60,6 +60,7 @@ namespace VirtualNes.Core
     [Flags]
     public enum EnumButtonType
     {
+        NONE = 0,
         UP = 1,
         DOWN = 2,
         LEFT = 4,
diff --git a/AxibugEmuOnline.Client/Packages/manifest.json b/AxibugEmuOnline.Client/Packages/manifest.json
index b63e2fca..165b9816 100644
--- a/AxibugEmuOnline.Client/Packages/manifest.json
+++ b/AxibugEmuOnline.Client/Packages/manifest.json
@@ -2,7 +2,6 @@
   "dependencies": {
     "com.unity.2d.sprite": "1.0.0",
     "com.unity.ide.visualstudio": "2.0.22",
-    "com.unity.inputsystem": "1.3.0",
     "com.unity.postprocessing": "3.2.2",
     "com.unity.ugui": "1.0.0",
     "com.unity.modules.ai": "1.0.0",
diff --git a/AxibugEmuOnline.Client/Packages/packages-lock.json b/AxibugEmuOnline.Client/Packages/packages-lock.json
index 5ab3c71a..8bb04f09 100644
--- a/AxibugEmuOnline.Client/Packages/packages-lock.json
+++ b/AxibugEmuOnline.Client/Packages/packages-lock.json
@@ -22,15 +22,6 @@
       },
       "url": "https://packages.unity.cn"
     },
-    "com.unity.inputsystem": {
-      "version": "1.3.0",
-      "depth": 0,
-      "source": "registry",
-      "dependencies": {
-        "com.unity.modules.uielements": "1.0.0"
-      },
-      "url": "https://packages.unity.cn"
-    },
     "com.unity.postprocessing": {
       "version": "3.2.2",
       "depth": 0,

From 8fefe516bdb22cdf27e63f87aed12d3638ad7345 Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Tue, 26 Nov 2024 17:18:20 +0800
Subject: [PATCH 05/10] =?UTF-8?q?Legacy=E6=94=B9=E5=90=8D,=E4=B8=8D?=
 =?UTF-8?q?=E5=86=8D=E4=BD=BF=E7=94=A8inputsystem?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...mingChanger_Legacy.cs => GamingChanger.cs} |  4 +-
 ...r_Legacy.cs.meta => GamingChanger.cs.meta} |  0
 ...rmalChanger_Legacy.cs => NormalChanger.cs} | 10 +--
 ...r_Legacy.cs.meta => NormalChanger.cs.meta} |  0
 .../Script/NesEmulator/NesControllerMapper.cs | 86 +++++++------------
 .../UI/CommandDispatcher/CommandDispatcher.cs |  6 +-
 ...dListener_Legacy.cs => CommandListener.cs} |  2 +-
 ...Legacy.cs.meta => CommandListener.cs.meta} |  0
 8 files changed, 42 insertions(+), 66 deletions(-)
 rename AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/{GamingChanger_Legacy.cs => GamingChanger.cs} (85%)
 rename AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/{GamingChanger_Legacy.cs.meta => GamingChanger.cs.meta} (100%)
 rename AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/{NormalChanger_Legacy.cs => NormalChanger.cs} (90%)
 rename AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/{NormalChanger_Legacy.cs.meta => NormalChanger.cs.meta} (100%)
 rename AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/{CommandListener_Legacy.cs => CommandListener.cs} (92%)
 rename AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/{CommandListener_Legacy.cs.meta => CommandListener.cs.meta} (100%)

diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger.cs
similarity index 85%
rename from AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs
rename to AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger.cs
index 250cee93..74575397 100644
--- a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger.cs
@@ -3,10 +3,10 @@ using UnityEngine;
 
 namespace AxibugEmuOnline.Client
 {
-    public class GamingChanger_Legacy : CommandChanger
+    public class GamingChanger : CommandChanger
     {
         Dictionary<KeyCode, EnumCommand> m_uiKeyMapper = new Dictionary<KeyCode, EnumCommand>();
-        public GamingChanger_Legacy()
+        public GamingChanger()
         {
             m_uiKeyMapper[KeyCode.Escape] = EnumCommand.OptionMenu;
 
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger.cs.meta
similarity index 100%
rename from AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger_Legacy.cs.meta
rename to AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/GamingChanger.cs.meta
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger.cs
similarity index 90%
rename from AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs
rename to AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger.cs
index 2d328d99..6f6d12ea 100644
--- a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger.cs
@@ -1,17 +1,13 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using System.Collections.Generic;
 using UnityEngine;
 
 namespace AxibugEmuOnline.Client
 {
 
-    public class NormalChanger_Legacy : CommandChanger
+    public class NormalChanger : CommandChanger
     {
         Dictionary<KeyCode, EnumCommand> m_uiKeyMapper = new Dictionary<KeyCode, EnumCommand>();
-        public NormalChanger_Legacy()
+        public NormalChanger()
         {
             m_uiKeyMapper[KeyCode.A] = EnumCommand.SelectItemLeft;
             m_uiKeyMapper[KeyCode.D] = EnumCommand.SelectItemRight;
diff --git a/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs.meta b/AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger.cs.meta
similarity index 100%
rename from AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger_Legacy.cs.meta
rename to AxibugEmuOnline.Client/Assets/Script/IkeyMapperChanger/Legacy/NormalChanger.cs.meta
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs
index 3a5df6e4..7c055b89 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs
@@ -40,7 +40,7 @@ namespace AxibugEmuOnline.Client
 
             private void loadConfig()
             {
-                m_keyListener = MapperSetter.GetKey_Legacy(m_controllerIndex, m_buttonType);
+                m_keyListener = MapperSetter.GetKey(m_controllerIndex, m_buttonType);
 
             }
 
@@ -95,13 +95,13 @@ namespace AxibugEmuOnline.Client
                 return res;
             }
 
-            public static IKeyListener GetKey_Legacy(int controllerInput, EnumButtonType nesConBtnType)
+            public static IKeyListener GetKey(int controllerInput, EnumButtonType nesConBtnType)
             {
                 string configKey = $"NES_{controllerInput}_{nesConBtnType}";
 
                 if (PlayerPrefs.HasKey(configKey))
                 {
-                    return new KeyListener_Legacy(PlayerPrefs.GetString(configKey));
+                    return new KeyListener(PlayerPrefs.GetString(configKey));
                 }
                 else
                 {
@@ -110,31 +110,31 @@ namespace AxibugEmuOnline.Client
                     return defaultKeyCode;
                 }
 
-                KeyListener_Legacy GetDefaultKey()
+                KeyListener GetDefaultKey()
                 {
                     switch (controllerInput)
                     {
                         case 1:
-                            if (nesConBtnType == EnumButtonType.LEFT) return new KeyListener_Legacy(KeyCode.A, KeyCode.Joystick1Button12);
-                            if (nesConBtnType == EnumButtonType.RIGHT) return new KeyListener_Legacy(KeyCode.D, KeyCode.Joystick1Button13);
-                            if (nesConBtnType == EnumButtonType.UP) return new KeyListener_Legacy(KeyCode.W, KeyCode.Joystick1Button10);
-                            if (nesConBtnType == EnumButtonType.DOWN) return new KeyListener_Legacy(KeyCode.S, KeyCode.Joystick1Button11);
-                            if (nesConBtnType == EnumButtonType.START) return new KeyListener_Legacy(KeyCode.B, KeyCode.Joystick1Button7);
-                            if (nesConBtnType == EnumButtonType.SELECT) return new KeyListener_Legacy(KeyCode.V, KeyCode.Joystick1Button6);
-                            if (nesConBtnType == EnumButtonType.A) return new KeyListener_Legacy(KeyCode.K, KeyCode.Joystick1Button1);
-                            if (nesConBtnType == EnumButtonType.B) return new KeyListener_Legacy(KeyCode.J, KeyCode.Joystick1Button2);
-                            if (nesConBtnType == EnumButtonType.MIC) return new KeyListener_Legacy(KeyCode.M, KeyCode.Joystick1Button12);
+                            if (nesConBtnType == EnumButtonType.LEFT) return new KeyListener(KeyCode.A);
+                            if (nesConBtnType == EnumButtonType.RIGHT) return new KeyListener(KeyCode.D);
+                            if (nesConBtnType == EnumButtonType.UP) return new KeyListener(KeyCode.W);
+                            if (nesConBtnType == EnumButtonType.DOWN) return new KeyListener(KeyCode.S);
+                            if (nesConBtnType == EnumButtonType.START) return new KeyListener(KeyCode.B);
+                            if (nesConBtnType == EnumButtonType.SELECT) return new KeyListener(KeyCode.V);
+                            if (nesConBtnType == EnumButtonType.A) return new KeyListener(KeyCode.K);
+                            if (nesConBtnType == EnumButtonType.B) return new KeyListener(KeyCode.J);
+                            if (nesConBtnType == EnumButtonType.MIC) return new KeyListener(KeyCode.M);
                             break;
                         case 2:
-                            if (nesConBtnType == EnumButtonType.LEFT) return new KeyListener_Legacy(KeyCode.Delete, KeyCode.Joystick2Button12);
-                            if (nesConBtnType == EnumButtonType.RIGHT) return new KeyListener_Legacy(KeyCode.PageDown, KeyCode.Joystick2Button13);
-                            if (nesConBtnType == EnumButtonType.UP) return new KeyListener_Legacy(KeyCode.Home, KeyCode.Joystick2Button10);
-                            if (nesConBtnType == EnumButtonType.DOWN) return new KeyListener_Legacy(KeyCode.End, KeyCode.Joystick2Button11);
-                            if (nesConBtnType == EnumButtonType.START) return new KeyListener_Legacy(KeyCode.PageUp, KeyCode.Joystick2Button7);
-                            if (nesConBtnType == EnumButtonType.SELECT) return new KeyListener_Legacy(KeyCode.Insert, KeyCode.Joystick2Button6);
-                            if (nesConBtnType == EnumButtonType.A) return new KeyListener_Legacy(KeyCode.Keypad5, KeyCode.Joystick2Button1);
-                            if (nesConBtnType == EnumButtonType.B) return new KeyListener_Legacy(KeyCode.Keypad4, KeyCode.Joystick2Button2);
-                            if (nesConBtnType == EnumButtonType.MIC) return new KeyListener_Legacy(KeyCode.KeypadPeriod, KeyCode.Joystick2Button12);
+                            if (nesConBtnType == EnumButtonType.LEFT) return new KeyListener(KeyCode.Delete);
+                            if (nesConBtnType == EnumButtonType.RIGHT) return new KeyListener(KeyCode.PageDown);
+                            if (nesConBtnType == EnumButtonType.UP) return new KeyListener(KeyCode.Home);
+                            if (nesConBtnType == EnumButtonType.DOWN) return new KeyListener(KeyCode.End);
+                            if (nesConBtnType == EnumButtonType.START) return new KeyListener(KeyCode.PageUp);
+                            if (nesConBtnType == EnumButtonType.SELECT) return new KeyListener(KeyCode.Insert);
+                            if (nesConBtnType == EnumButtonType.A) return new KeyListener(KeyCode.Keypad5);
+                            if (nesConBtnType == EnumButtonType.B) return new KeyListener(KeyCode.Keypad4);
+                            if (nesConBtnType == EnumButtonType.MIC) return new KeyListener(KeyCode.KeypadPeriod);
                             break;
                     }
 
@@ -149,56 +149,36 @@ namespace AxibugEmuOnline.Client
             bool IsPressing();
         }
 
-        public struct KeyListener_Legacy : IKeyListener
+        public struct KeyListener : IKeyListener
         {
-            private KeyCode[] m_keys;
+            private KeyCode m_key;
 
-            public KeyListener_Legacy(params KeyCode[] keys)
+            public KeyListener(KeyCode key)
             {
-                m_keys = keys;
+                m_key = key;
             }
 
             /// <summary>
             /// 从配置表字符串构建
             /// </summary>
-            /// <param name="confStr">以:分割的键值字符串</param>
-            public KeyListener_Legacy(string confStr)
+            public KeyListener(string confStr)
             {
-                m_keys = new KeyCode[2];
+                m_key = KeyCode.None;
 
-                var temp = confStr.Split(':');
-                m_keys = new KeyCode[temp.Length];
-                for (int i = 0; i < temp.Length; i++)
-                {
-                    if (int.TryParse(temp[i], out int result))
-                        m_keys[i] = (KeyCode)result;
-                }
+                if (int.TryParse(confStr, out int result))
+                    m_key = (KeyCode)result;
             }
 
-            public bool IsPressing()
+            public readonly bool IsPressing()
             {
-                if (m_keys == null || m_keys.Length == 0) return false;
-
-                foreach (var key in m_keys)
-                {
-                    if (Input.GetKey(key)) return true;
-                }
+                if (Input.GetKey(m_key)) return true;
 
                 return false;
             }
 
             public override string ToString()
             {
-                if (m_keys == null || m_keys.Length == 0) return string.Empty;
-                StringBuilder sb = new StringBuilder();
-                for (int i = 0; i < m_keys.Length; i++)
-                {
-                    var keyVal = (int)m_keys[i];
-                    sb.Append(keyVal);
-                    if (i != m_keys.Length - 1) sb.Append(':');
-                }
-
-                return sb.ToString();
+                return ((int)(m_key)).ToString();
             }
         }
     }
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
index 1e651cc0..1631ee93 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
@@ -36,11 +36,11 @@ namespace AxibugEmuOnline.Client
             Instance = this;
 
             //��ʼ��command������
-            m_listener = new CommandListener_Legacy();
+            m_listener = new CommandListener();
 
             //��ʼ����λ�޸���
-            Normal = new NormalChanger_Legacy();
-            Gaming = new GamingChanger_Legacy();
+            Normal = new NormalChanger();
+            Gaming = new GamingChanger();
         }
 
         private void OnDestroy()
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs
similarity index 92%
rename from AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs
rename to AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs
index 8598135b..2eb5f9d9 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs
@@ -3,7 +3,7 @@ using UnityEngine;
 
 namespace AxibugEmuOnline.Client
 {
-    public class CommandListener_Legacy : ICommandListener
+    public class CommandListener : ICommandListener
     {
         Dictionary<KeyCode, EnumCommand> m_keyMapper = new Dictionary<KeyCode, EnumCommand>();
         List<CommandState> m_commands = new List<CommandState>();
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta
similarity index 100%
rename from AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener_Legacy.cs.meta
rename to AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandListener.cs.meta

From d3c7c21552ac6ce2b1be99c87fb415b53b76b001 Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Tue, 26 Nov 2024 20:30:02 +0800
Subject: [PATCH 06/10] =?UTF-8?q?=E6=BB=A4=E9=95=9C=E5=8F=82=E6=95=B0?=
 =?UTF-8?q?=E5=8F=AF=E8=B0=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Assets/Scene/AxibugEmuOnline.Client.unity |  35 ++---
 .../Script/Filter/FixingPixelArtGrille.cs     |  81 +++++++++-
 .../Script/Filter/FixingPixelArtGrille.shader | 142 +++++++++---------
 .../Script/Filter/GameCamera Profile.asset    |  60 ++++++--
 .../Script/NesEmulator/NesControllerMapper.cs |   1 -
 .../Assets/Script/NesEmulator/NesEmulator.cs  |   1 +
 6 files changed, 206 insertions(+), 114 deletions(-)

diff --git a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
index 2da0c26f..e6a5bc7f 100644
--- a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
+++ b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
@@ -150,25 +150,16 @@ MonoBehaviour:
   m_GameObject: {fileID: 74796456}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
+  m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_MoveRepeatDelay: 0.5
-  m_MoveRepeatRate: 0.1
-  m_XRTrackingOrigin: {fileID: 0}
-  m_ActionsAsset: {fileID: -944628639613478452, guid: eb413fd14a8483440af9652b7e4df5e1, type: 3}
-  m_PointAction: {fileID: 0}
-  m_MoveAction: {fileID: 0}
-  m_SubmitAction: {fileID: 0}
-  m_CancelAction: {fileID: 0}
-  m_LeftClickAction: {fileID: 0}
-  m_MiddleClickAction: {fileID: 0}
-  m_RightClickAction: {fileID: 0}
-  m_ScrollWheelAction: {fileID: 0}
-  m_TrackedDevicePositionAction: {fileID: 0}
-  m_TrackedDeviceOrientationAction: {fileID: 0}
-  m_DeselectOnBackgroundClick: 1
-  m_PointerBehavior: 0
+  m_HorizontalAxis: Horizontal
+  m_VerticalAxis: Vertical
+  m_SubmitButton: Submit
+  m_CancelButton: Cancel
+  m_InputActionsPerSecond: 10
+  m_RepeatDelay: 0.5
+  m_ForceModuleActive: 0
 --- !u!114 &74796458
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -2508,7 +2499,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1639091784002085428, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_RootOrder
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1639091784002085428, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.x
@@ -13451,8 +13442,8 @@ GameObject:
   m_Component:
   - component: {fileID: 1475480929}
   - component: {fileID: 1475480931}
-  - component: {fileID: 1475480930}
   - component: {fileID: 1475480932}
+  - component: {fileID: 1475480930}
   m_Layer: 5
   m_Name: GameCamera
   m_TagString: MainCamera
@@ -13847,7 +13838,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1963501579241001456, guid: 334eee9f85f308347844f8f5e99167c3, type: 3}
       propertyPath: m_RootOrder
-      value: 3
+      value: 2
       objectReference: {fileID: 0}
     - target: {fileID: 1963501579241001456, guid: 334eee9f85f308347844f8f5e99167c3, type: 3}
       propertyPath: m_AnchorMax.x
@@ -13956,7 +13947,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
       propertyPath: m_RootOrder
-      value: 4
+      value: 3
       objectReference: {fileID: 0}
     - target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
       propertyPath: m_AnchorMax.x
@@ -14109,7 +14100,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
       propertyPath: m_RootOrder
-      value: 2
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
       propertyPath: m_AnchorMax.x
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
index c82008cf..f8bfb136 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
@@ -1,3 +1,5 @@
+using AxibugEmuOnline.Client;
+using AxibugEmuOnline.Client.ClientCore;
 using UnityEngine;
 using UnityEngine.Rendering.PostProcessing;
 
@@ -5,7 +7,51 @@ using UnityEngine.Rendering.PostProcessing;
 [PostProcess(typeof(FixingPixelArtGrilleRenderer), PostProcessEvent.BeforeStack, "Filter/FixingPixelArtGrille")]
 public sealed class FixingPixelArtGrille : PostProcessEffectSettings
 {
-    // ����������������IJ���
+    public ParameterOverride<EnumMaskStyle> MaskStyle = new ParameterOverride<EnumMaskStyle> { value = EnumMaskStyle.ApertureGrille };
+
+    [Tooltip("Emulated input resolution\nOptimize for resize")]
+    public Vector2Parameter DrawResolution = new Vector2Parameter
+    {
+        value = new Vector2(272, 240)
+    };
+
+    [Tooltip("Hardness of scanline")]
+    [Range(-32, 0)]
+    public FloatParameter HardScan = new FloatParameter { value = -10 };
+
+    [Tooltip("Hardness of pixels in scanline")]
+    [Range(-6, 0)]
+    public FloatParameter HardPix = new FloatParameter { value = -2 };
+
+    [Tooltip("Hardness of short vertical bloom")]
+    [Range(-8, 0)]
+    public FloatParameter HardBloomScan = new FloatParameter { value = -4.0f };
+
+    [Tooltip("Hardness of short horizontal bloom")]
+    [Range(-4, 0)]
+    public FloatParameter HardBloomPix = new FloatParameter { value = -1.5f };
+
+    [Tooltip("Amount of small bloom effect")]
+    [Range(0, 1)]
+    public FloatParameter BloomAmount = new FloatParameter { value = 1 / 16f };
+
+    [Tooltip("Display warp")]
+    public Vector2Parameter Warp = new Vector2Parameter { value = new Vector2(1f / 64f, 1f / 24f) };
+
+    [Tooltip("Amount of shadow mask Light")]
+    [Range(1, 3)]
+    public FloatParameter MaskLight = new FloatParameter { value = 1.5f };
+    [Range(0.1f, 1)]
+    [Tooltip("Amount of shadow mask Dark")]
+    public FloatParameter MaskDrak = new FloatParameter { value = 0.5f };
+
+    public enum EnumMaskStyle
+    {
+        TVStyle,
+        ApertureGrille,
+        StretchedVGA,
+        VGAStyle
+    }
 }
 
 public sealed class FixingPixelArtGrilleRenderer : PostProcessEffectRenderer<FixingPixelArtGrille>
@@ -21,6 +67,39 @@ public sealed class FixingPixelArtGrilleRenderer : PostProcessEffectRenderer<Fix
 
     public override void Render(PostProcessRenderContext context)
     {
+        material.SetVector("_iResolution", new Vector4(Screen.width, Screen.height, 0, 0));
+        var res = settings.DrawResolution;
+        material.SetVector("_res", new Vector4(res.value.x, res.value.y, 0, 0));
+        material.SetFloat("_hardScan", settings.HardScan.value);
+        material.SetFloat("_hardPix", settings.HardPix.value);
+        material.SetFloat("_hardBloomScan", settings.HardBloomScan.value);
+        material.SetFloat("_hardBloomPix", settings.HardBloomPix.value);
+        material.SetFloat("_bloomAmount", settings.BloomAmount.value);
+        material.SetVector("_warp", settings.Warp.value);
+        material.SetFloat("_maskDark", settings.MaskDrak.value);
+        material.SetFloat("_maskLight", settings.MaskLight.value);
+
+        material.DisableKeyword("_MASKSTYLE_VGASTYLE");
+        material.DisableKeyword("_MASKSTYLE_TVSTYLE");
+        material.DisableKeyword("_MASKSTYLE_APERTUREGRILLE");
+        material.DisableKeyword("_MASKSTYLE_STRETCHEDVGA");
+
+        switch (settings.MaskStyle.value)
+        {
+            case FixingPixelArtGrille.EnumMaskStyle.VGAStyle:
+                material.EnableKeyword("_MASKSTYLE_VGASTYLE");
+                break;
+            case FixingPixelArtGrille.EnumMaskStyle.TVStyle:
+                material.EnableKeyword("_MASKSTYLE_TVSTYLE");
+                break;
+            case FixingPixelArtGrille.EnumMaskStyle.ApertureGrille:
+                material.EnableKeyword("_MASKSTYLE_APERTUREGRILLE");
+                break;
+            case FixingPixelArtGrille.EnumMaskStyle.StretchedVGA:
+                material.EnableKeyword("_MASKSTYLE_STRETCHEDVGA");
+                break;
+        }
+
         context.command.Blit(context.source, context.destination, material);
     }
 }
\ No newline at end of file
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader
index 349f5a6c..b09c2d90 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.shader
@@ -11,6 +11,7 @@ Shader "PostEffect/FixingPixcelArtGrille"
         {
             CGPROGRAM
 
+            #pragma shader_feature_local _MASKSTYLE_TVSTYLE _MASKSTYLE_APERTUREGRILLE _MASKSTYLE_STRETCHEDVGA _MASKSTYLE_VGASTYLE
             #pragma vertex vert_img
             #pragma fragment frag
             #include "UnityCG.cginc"
@@ -33,48 +34,48 @@ Shader "PostEffect/FixingPixcelArtGrille"
 // Please take and use, change, or whatever.
 //
 
-#define iResolution float2(1920,1080)
+float2 _iResolution = float2(1920,1080);
 
 // Emulated input resolution.
   // Optimize for resize.
-#define res (float2(272.0,240.0)*1.5)
+float2 _res = float2(272.0,240.0);
 
 // Hardness of scanline.
 //  -8.0 = soft
 // -16.0 = medium
-#define hardScan -10.0
+float _hardScan = -10.0;
 
 // Hardness of pixels in scanline.
 // -2.0 = soft
 // -4.0 = hard
-#define hardPix -2.0
+float _hardPix =-2.0;
 
-// Hardness of short vertical bloom.
+// Hardness of short vertical bloom. 
 //  -1.0 = wide to the point of clipping (bad)
 //  -1.5 = wide
 //  -4.0 = not very wide at all
-#define hardBloomScan -4.0
+float _hardBloomScan = -4.0;
 
 // Hardness of short horizontal bloom.
 //  -0.5 = wide to the point of clipping (bad)
 //  -1.0 = wide
 //  -2.0 = not very wide at all
-#define hardBloomPix -1.5
+float _hardBloomPix = -1.5;
 
 // Amount of small bloom effect.
 //  1.0/1.0 = only bloom
 //  1.0/16.0 = what I think is a good amount of small bloom
 //  0.0     = no bloom
-#define bloomAmount 1.0/1.0
+float _bloomAmount = 1.0/16.0;
 
 // Display warp.
 // 0.0 = none
-// 1.0/8.0 = extreme
-#define warp float2(1.0/64.0,1.0/24.0)
+// 1.0/8.0 = extreme 
+float2 _warp =  float2(1.0/64.0,1.0/24.0);
 
 // Amount of shadow mask.
-#define maskDark 0.5
-#define maskLight 1.5
+float _maskDark = 0.5;
+float _maskLight = 1.5;
 
 //------------------------------------------------------------------------
 
@@ -92,23 +93,18 @@ float3 ToLinear(float3 c){return float3(ToLinear1(c.r),ToLinear1(c.g),ToLinear1(
 float ToSrgb1(float c){return(c<0.0031308?c*12.92:1.055*pow(c,0.41666)-0.055);}
 float3 ToSrgb(float3 c){return float3(ToSrgb1(c.r),ToSrgb1(c.g),ToSrgb1(c.b));}
 
-// Testing only, something to help generate a dark signal for bloom test.
-// Set to zero, or remove Test() if using this shader.
-#if 1
+
  float3 Test(float3 c){return c*(1.0/64.0)+c*c*c;}
-#else
- float3 Test(float3 c){return c;}
-#endif
 
 // Nearest emulated sample given floating point position and texel offset.
 // Also zero's off screen.
 float3 Fetch( float2 pos,float2 off){
-  pos=floor(pos*res+off)/res;
+  pos=floor(pos*_res+off)/_res;
   if(max(abs(pos.x-0.5),abs(pos.y-0.5))>0.5)return float3(0.0,0.0,0.0);
   return Test(ToLinear(tex2D(_MainTex,pos.xy).rgb));}
 
 // Distance in emulated pixels to nearest texel.
-float2 Dist(float2 pos){pos=pos*res;return -((pos-floor(pos))-float2(0.5,0.5));}
+float2 Dist(float2 pos){pos=pos*_res;return -((pos-floor(pos))-float2(0.5,0.5));}
     
 // 1D Gaussian.
 float Gaus(float pos,float scale){return exp2(scale*pos*pos);}
@@ -120,7 +116,7 @@ float3 Horz3(float2 pos,float off){
   float3 d=Fetch(pos,float2( 1.0,off));
   float dst=Dist(pos).x;
   // Convert distance to weight.
-  float scale=hardPix;
+  float scale=_hardPix;
   float wb=Gaus(dst-1.0,scale);
   float wc=Gaus(dst+0.0,scale);
   float wd=Gaus(dst+1.0,scale);
@@ -136,7 +132,7 @@ float3 Horz5(float2 pos,float off){
   float3 e=Fetch(pos,float2( 2.0,off));
   float dst=Dist(pos).x;
   // Convert distance to weight.
-  float scale=hardPix;
+  float scale=_hardPix;
   float wa=Gaus(dst-2.0,scale);
   float wb=Gaus(dst-1.0,scale);
   float wc=Gaus(dst+0.0,scale);
@@ -156,7 +152,7 @@ float3 Horz7(float2 pos,float off){
   float3 g=Fetch(pos,float2( 3.0,off));
   float dst=Dist(pos).x;
   // Convert distance to weight.
-  float scale=hardBloomPix;
+  float scale=_hardBloomPix;
   float wa=Gaus(dst-3.0,scale);
   float wb=Gaus(dst-2.0,scale);
   float wc=Gaus(dst-1.0,scale);
@@ -170,12 +166,12 @@ float3 Horz7(float2 pos,float off){
 // Return scanline weight.
 float Scan(float2 pos,float off){
   float dst=Dist(pos).y;
-  return Gaus(dst+off,hardScan);}
+  return Gaus(dst+off,_hardScan);}
 
 // Return scanline weight for bloom.
 float BloomScan(float2 pos,float off){
   float dst=Dist(pos).y;
-  return Gaus(dst+off,hardBloomScan);}
+  return Gaus(dst+off,_hardBloomScan);}
 
 // Allow nearest three lines to effect pixel.
 float3 Tri(float2 pos){
@@ -205,62 +201,58 @@ float3 Bloom(float2 pos){
 float2 Warp(float2 pos){
   
   pos=pos*2.0-1.0;    
-  pos*=float2(1.0+(pos.y*pos.y)*warp.x,1.0+(pos.x*pos.x)*warp.y);
+  pos*=float2(1.0+(pos.y*pos.y)*_warp.x,1.0+(pos.x*pos.x)*_warp.y);
   return pos*0.5+0.5;}
-
-#if 0
-// Very compressed TV style shadow mask.
-float3 Mask(float2 pos){
-  float line=maskLight;
-  float odd=0.0;
-  if(fract(pos.x/6.0)<0.5)odd=1.0;
-  if(fract((pos.y+odd)/2.0)<0.5)line=maskDark;  
-  pos.x=fract(pos.x/3.0);
-  float3 mask=float3(maskDark,maskDark,maskDark);
-  if(pos.x<0.333)mask.r=maskLight;
-  else if(pos.x<0.666)mask.g=maskLight;
-  else mask.b=maskLight;
-  mask*=line;
-  return mask;}        
-#endif
-
-#if 1
-// Aperture-grille.
-float3 Mask(float2 pos){
-  pos.x=fract(pos.x/3.0);
-  float3 mask=float3(maskDark,maskDark,maskDark);
-  if(pos.x<0.333)mask.r=maskLight;
-  else if(pos.x<0.666)mask.g=maskLight;
-  else mask.b=maskLight;
-  return mask;}        
-#endif
-
-#if 0
-// Stretched VGA style shadow mask (same as prior shaders).
-float3 Mask(float2 pos){
-  pos.x+=pos.y*3.0;
-  float3 mask=float3(maskDark,maskDark,maskDark);
-  pos.x=fract(pos.x/6.0);
-  if(pos.x<0.333)mask.r=maskLight;
-  else if(pos.x<0.666)mask.g=maskLight;
-  else mask.b=maskLight;
-  return mask;}    
-#endif
-
-#if 0
+   
+#if defined(_MASKSTYLE_TVSTYLE)
+    // Very compressed TV style shadow mask.
+    float3 Mask(float2 pos){
+      float lineee=_maskLight;
+      float odd=0.0;
+      if(fract(pos.x/6.0)<0.5)odd=1.0;
+      if(fract((pos.y+odd)/2.0)<0.5) lineee=_maskDark;  
+      pos.x=fract(pos.x/3.0);
+      float3 mask=float3(_maskDark,_maskDark,_maskDark);
+      if(pos.x<0.333)mask.r=_maskLight;
+      else if(pos.x<0.666)mask.g=_maskLight;
+      else mask.b=_maskLight;
+      mask*=lineee;
+      return mask;
+  } 
+#elif defined(_MASKSTYLE_APERTUREGRILLE)
+    // Aperture-grille.
+    float3 Mask(float2 pos){
+    pos.x=fract(pos.x/3.0);
+    float3 mask=float3(_maskDark,_maskDark,_maskDark);
+    if(pos.x<0.333)mask.r=_maskLight;
+    else if(pos.x<0.666)mask.g=_maskLight;
+    else mask.b=_maskLight;
+    return mask;}   
+#elif defined(_MASKSTYLE_STRETCHEDVGA)
+    // Stretched VGA style shadow mask (same as prior shaders).
+    float3 Mask(float2 pos){
+    pos.x+=pos.y*3.0;
+    float3 mask=float3(_maskDark,_maskDark,_maskDark);
+    pos.x=fract(pos.x/6.0);
+    if(pos.x<0.333)mask.r=_maskLight;
+    else if(pos.x<0.666)mask.g=_maskLight;
+    else mask.b=_maskLight;
+    return mask;}   
+#elif defined(_MASKSTYLE_VGASTYLE)
 // VGA style shadow mask.
 float3 Mask(float2 pos){
   pos.xy=floor(pos.xy*float2(1.0,0.5));
   pos.x+=pos.y*3.0;
-  float3 mask=float3(maskDark,maskDark,maskDark);
+  float3 mask=float3(_maskDark,_maskDark,_maskDark);
   pos.x=fract(pos.x/6.0);
-  if(pos.x<0.333)mask.r=maskLight;
-  else if(pos.x<0.666)mask.g=maskLight;
-  else mask.b=maskLight;
-  return mask;}    
+  if(pos.x<0.333)mask.r=_maskLight;
+  else if(pos.x<0.666)mask.g=_maskLight;
+  else mask.b=_maskLight;
+  return mask;}   
 #endif
 
 
+
 // Draw dividing bars.
 float Bar(float pos,float bar){pos-=bar;return pos*pos<4.0?0.0:1.0;}
 
@@ -268,11 +260,11 @@ float Bar(float pos,float bar){pos-=bar;return pos*pos<4.0?0.0:1.0;}
 float4 mainImage(float2 fragCoord){
 
 float4 fragColor = float4(1,1,1,1);
-float2 pos=Warp(fragCoord.xy/iResolution.xy);
+float2 pos=Warp(fragCoord.xy/_iResolution.xy);
 
   fragColor.rgb=Tri(pos)*Mask(fragCoord.xy); 
 
-  	fragColor.rgb+=Bloom(pos)*bloomAmount;    
+  	fragColor.rgb+=Bloom(pos)*_bloomAmount;    
   
   fragColor.a=1.0;  
   fragColor.rgb=ToSrgb(fragColor.rgb);
@@ -288,7 +280,7 @@ float2 pos=Warp(fragCoord.xy/iResolution.xy);
 
             fixed4 frag (v2f i) : SV_Target
             {
-                float2 pos = iResolution.xy*i.uv;
+                float2 pos = _iResolution.xy*i.uv;
                 fixed4 col = mainImage(pos);
                 return col;
             }
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset
index 4c7223ea..f62c9669 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset	
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset	
@@ -1,6 +1,20 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
---- !u!114 &-3536514882628332180
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3}
+  m_Name: GameCamera Profile
+  m_EditorClassIdentifier: 
+  settings:
+  - {fileID: 8004032914748422304}
+--- !u!114 &8004032914748422304
 MonoBehaviour:
   m_ObjectHideFlags: 3
   m_CorrespondingSourceObject: {fileID: 0}
@@ -16,17 +30,33 @@ MonoBehaviour:
   enabled:
     overrideState: 1
     value: 1
---- !u!114 &11400000
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3}
-  m_Name: GameCamera Profile
-  m_EditorClassIdentifier: 
-  settings:
-  - {fileID: -3536514882628332180}
+  MaskStyle:
+    overrideState: 0
+    value: 3
+  DrawResolution:
+    overrideState: 0
+    value: {x: 272, y: 240}
+  HardScan:
+    overrideState: 0
+    value: -10
+  HardPix:
+    overrideState: 0
+    value: -2
+  HardBloomScan:
+    overrideState: 0
+    value: -4.06
+  HardBloomPix:
+    overrideState: 0
+    value: -1.15
+  BloomAmount:
+    overrideState: 0
+    value: 0.483
+  Warp:
+    overrideState: 0
+    value: {x: 0.12, y: 0.04}
+  MaskLight:
+    overrideState: 0
+    value: 3
+  MaskDrak:
+    overrideState: 0
+    value: 0.1
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs
index 7c055b89..a7a5c164 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesControllerMapper.cs
@@ -98,7 +98,6 @@ namespace AxibugEmuOnline.Client
             public static IKeyListener GetKey(int controllerInput, EnumButtonType nesConBtnType)
             {
                 string configKey = $"NES_{controllerInput}_{nesConBtnType}";
-
                 if (PlayerPrefs.HasKey(configKey))
                 {
                     return new KeyListener(PlayerPrefs.GetString(configKey));
diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
index fa78912a..aff49567 100644
--- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/NesEmulator.cs
@@ -199,6 +199,7 @@ namespace AxibugEmuOnline.Client
             UnityEditor.EditorUtility.SetDirty(db);
             UnityEditor.AssetDatabase.SaveAssets();
         }
+
 #endif
     }
 }

From 872be73ace6c758fcfb699e6aed7d3c8e3e311a4 Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Wed, 27 Nov 2024 11:28:51 +0800
Subject: [PATCH 07/10] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=BB=A4=E9=95=9C?=
 =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=88=9D=E6=AD=A5=E6=8A=BD=E8=B1=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Assets/Scene/AxibugEmuOnline.Client.unity |  1 +
 AxibugEmuOnline.Client/Assets/Script/App.cs   |  5 +-
 .../Assets/Script/Filter/FilterEffect.cs      | 75 ++++++++++++++++
 .../Assets/Script/Filter/FilterEffect.cs.meta | 11 +++
 .../Script/Filter/FixingPixelArtGrille.cs     |  3 +-
 .../Script/Filter/GameCamera Profile.asset    | 18 ++--
 .../Assets/Script/Initer.cs                   |  6 +-
 .../Assets/Script/Manager/FilterManager.cs    | 87 +++++++++++++++++++
 .../Script/Manager/FilterManager.cs.meta      | 11 +++
 9 files changed, 205 insertions(+), 12 deletions(-)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs.meta

diff --git a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
index e6a5bc7f..5348750e 100644
--- a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
+++ b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
@@ -13389,6 +13389,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 980f937ad27ad8540afeb8b7f100997e, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_filterVolume: {fileID: 1475480930}
 --- !u!1 &1427887268
 GameObject:
   m_ObjectHideFlags: 0
diff --git a/AxibugEmuOnline.Client/Assets/Script/App.cs b/AxibugEmuOnline.Client/Assets/Script/App.cs
index fe55e095..b21c61cc 100644
--- a/AxibugEmuOnline.Client/Assets/Script/App.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/App.cs
@@ -5,6 +5,7 @@ using System.IO;
 using System.Threading.Tasks;
 using UnityEngine;
 using UnityEngine.Networking;
+using UnityEngine.Rendering.PostProcessing;
 using static AxibugEmuOnline.Client.HttpAPI;
 using static AxibugEmuOnline.Client.Manager.LogManager;
 
@@ -27,6 +28,7 @@ namespace AxibugEmuOnline.Client.ClientCore
         public static CacheManager CacheMgr;
         public static AppRoom roomMgr;
         public static AppSettings settings;
+        public static FilterManager filter;
         #region Mono
         public static TickLoop tickLoop;
         private static CoroutineRunner coRunner;
@@ -37,7 +39,7 @@ namespace AxibugEmuOnline.Client.ClientCore
 #else
         public static string PersistentDataPath => Application.persistentDataPath;
 #endif
-        public static void Init()
+        public static void Init(PostProcessVolume filterVolume)
         {
             settings = new AppSettings();
 
@@ -53,6 +55,7 @@ namespace AxibugEmuOnline.Client.ClientCore
             nesRomLib = new RomLib(EnumPlatform.NES);
             CacheMgr = new CacheManager();
             roomMgr = new AppRoom();
+            filter = new FilterManager(filterVolume);
             var go = new GameObject("[AppAxibugEmuOnline]");
             GameObject.DontDestroyOnLoad(go);
             tickLoop = go.AddComponent<TickLoop>();
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs
new file mode 100644
index 00000000..4346e01b
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs
@@ -0,0 +1,75 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using UnityEngine;
+using UnityEngine.Rendering.PostProcessing;
+
+namespace AxibugEmuOnline.Client
+{
+    public abstract class FilterEffect : PostProcessEffectSettings
+    {
+        private List<EditableParamerter> m_editableParamList;
+
+        public IReadOnlyCollection<EditableParamerter> EditableParam => m_editableParamList.AsReadOnly();
+
+        public FilterEffect()
+        {
+            GetEditableFilterParamters();
+        }
+        protected void GetEditableFilterParamters()
+        {
+            var parameters = (from t in GetType().GetFields(BindingFlags.Instance | BindingFlags.Public)
+                              where t.FieldType.IsSubclassOf(typeof(ParameterOverride))
+                              where t.DeclaringType.IsSubclassOf(typeof(FilterEffect))
+                              orderby t.MetadataToken
+                              select t);
+            m_editableParamList = parameters.Select(p => new EditableParamerter(p.Name, (ParameterOverride)p.GetValue(this))).ToList();
+        }
+
+        public class EditableParamerter
+        {
+            private ParameterOverride m_paramObject;
+            private FieldInfo valueFieldInfo;
+
+            public Type ValueType { get; private set; }
+            public string Name { get; private set; }
+            public object Value
+            {
+                get => valueFieldInfo.GetValue(m_paramObject);
+                set
+                {
+                    valueFieldInfo.SetValue(m_paramObject, value);
+                }
+            }
+            public EditableParamerter(string name, ParameterOverride paramObject)
+            {
+                m_paramObject = paramObject;
+                Name = name;
+
+                var paramType = paramObject.GetType();
+
+                valueFieldInfo = paramType.GetField("value", BindingFlags.Public | BindingFlags.Instance);
+                if (valueFieldInfo != null)
+                {
+                    ValueType = valueFieldInfo.FieldType;
+                }
+                else
+                {
+                    ValueType = typeof(object);
+                }
+            }
+
+            public string Serilized()
+            {
+                return JsonUtility.ToJson(Value);
+            }
+
+            public void Apply(string json)
+            {
+                var overrideValue = JsonUtility.FromJson(json, ValueType);
+                Value = overrideValue;
+            }
+        }
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs.meta b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs.meta
new file mode 100644
index 00000000..d4fee7cb
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c4df899ccb7155d44be59fbc5289cedd
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
index f8bfb136..6ecb2a16 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
@@ -1,11 +1,12 @@
 using AxibugEmuOnline.Client;
 using AxibugEmuOnline.Client.ClientCore;
+using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.Rendering.PostProcessing;
 
 [System.Serializable]
 [PostProcess(typeof(FixingPixelArtGrilleRenderer), PostProcessEvent.BeforeStack, "Filter/FixingPixelArtGrille")]
-public sealed class FixingPixelArtGrille : PostProcessEffectSettings
+public sealed class FixingPixelArtGrille : FilterEffect
 {
     public ParameterOverride<EnumMaskStyle> MaskStyle = new ParameterOverride<EnumMaskStyle> { value = EnumMaskStyle.ApertureGrille };
 
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset
index f62c9669..e9c21819 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset	
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/GameCamera Profile.asset	
@@ -13,8 +13,8 @@ MonoBehaviour:
   m_Name: GameCamera Profile
   m_EditorClassIdentifier: 
   settings:
-  - {fileID: 8004032914748422304}
---- !u!114 &8004032914748422304
+  - {fileID: 117625959343581733}
+--- !u!114 &117625959343581733
 MonoBehaviour:
   m_ObjectHideFlags: 3
   m_CorrespondingSourceObject: {fileID: 0}
@@ -32,7 +32,7 @@ MonoBehaviour:
     value: 1
   MaskStyle:
     overrideState: 0
-    value: 3
+    value: 1
   DrawResolution:
     overrideState: 0
     value: {x: 272, y: 240}
@@ -44,19 +44,19 @@ MonoBehaviour:
     value: -2
   HardBloomScan:
     overrideState: 0
-    value: -4.06
+    value: -4
   HardBloomPix:
     overrideState: 0
-    value: -1.15
+    value: -1.5
   BloomAmount:
     overrideState: 0
-    value: 0.483
+    value: 0.0625
   Warp:
     overrideState: 0
-    value: {x: 0.12, y: 0.04}
+    value: {x: 0.015625, y: 0.041666668}
   MaskLight:
     overrideState: 0
-    value: 3
+    value: 1.5
   MaskDrak:
     overrideState: 0
-    value: 0.1
+    value: 0.5
diff --git a/AxibugEmuOnline.Client/Assets/Script/Initer.cs b/AxibugEmuOnline.Client/Assets/Script/Initer.cs
index 0189d9de..1445779a 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Initer.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Initer.cs
@@ -1,13 +1,17 @@
 using AxibugEmuOnline.Client.ClientCore;
 using UnityEngine;
+using UnityEngine.Rendering.PostProcessing;
 
 namespace AxibugEmuOnline.Client
 {
     public class Initer : MonoBehaviour
     {
+        [SerializeField]
+        PostProcessVolume m_filterVolume;
+
         private void Awake()
         {
-            App.Init();
+            App.Init(m_filterVolume);
         }
     }
 }
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs
new file mode 100644
index 00000000..af0795c4
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs
@@ -0,0 +1,87 @@
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine.Rendering.PostProcessing;
+using static AxibugEmuOnline.Client.FilterEffect;
+
+namespace AxibugEmuOnline.Client
+{
+    public class FilterManager
+    {
+        private PostProcessProfile m_filterPorfile;
+        private List<Filter> m_filters;
+
+        public FilterManager(PostProcessVolume filterVolume)
+        {
+            m_filterPorfile = filterVolume.profile;
+            m_filters = m_filterPorfile.settings.Where(setting=>setting is FilterEffect).Select(setting => new Filter(setting as FilterEffect)).ToList();
+
+            ShutDownFilter();
+        }
+
+        /// <summary>
+        /// 滤镜列表
+        /// </summary>
+        public IReadOnlyList<Filter> Filters => m_filters;
+
+        /// <summary>
+        /// 打开滤镜
+        /// </summary>
+        /// <param name="filter"></param>
+        public void EnableFilter(Filter filter)
+        {
+            foreach(var selfFiler in Filters)
+            {
+                if (selfFiler != filter) selfFiler.m_setting.enabled.Override(false);
+                else selfFiler.m_setting.enabled.Override(true);
+            }
+        }
+
+        /// <summary>
+        /// 关闭滤镜效果
+        /// </summary>
+        public void ShutDownFilter()
+        {
+            //关闭所有后处理效果
+            foreach (var setting in m_filterPorfile.settings)
+                setting.enabled.Override(false);
+        }
+
+        public struct Filter
+        {
+            public readonly string Name => m_setting.name;
+
+            internal FilterEffect m_setting;
+
+            public Filter(FilterEffect setting)
+            {
+                m_setting = setting;
+            }
+
+            internal IReadOnlyCollection<EditableParamerter> Paramerters => m_setting.EditableParam;
+
+            public override readonly int GetHashCode()
+            {
+                return m_setting.GetHashCode();
+            }
+
+            public override readonly bool Equals(object obj)
+            {
+                if(obj == null) return false;
+                if (!(obj is Filter)) return false;
+
+                return ((Filter)obj).GetHashCode() == GetHashCode();
+            }
+
+            public static bool operator ==(Filter left, Filter right)
+            {
+                return left.GetHashCode() == right.GetHashCode();
+            }
+
+            public static bool operator !=(Filter left, Filter right)
+            {
+                return !(left == right);
+            }
+        }
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs.meta b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs.meta
new file mode 100644
index 00000000..d7ab243c
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5354e2e13dbff91438a04b9de2351645
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

From 10fde01ac57058976308c624f63888addd4e2548 Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Wed, 27 Nov 2024 13:30:56 +0800
Subject: [PATCH 08/10] =?UTF-8?q?=E6=BB=A4=E9=95=9C=E8=AE=BE=E7=BD=AEUI?=
 =?UTF-8?q?=E6=B7=BB=E5=8A=A0,=E4=BF=AE=E5=A4=8Dbug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Resources/UIPrefabs/LaunchUI.prefab       | 1039 ++++++++++++----
 .../GlobalFilter_Template.prefab              | 1107 +++++++++++++++++
 .../GlobalFilter_Template.prefab.meta         |    7 +
 .../FilterItemTemplate.prefab                 |  822 ++++++++++++
 .../FilterItemTemplate.prefab.meta            |    7 +
 .../Manager/AppSettings/BgColorSettings.cs    |    4 +-
 .../Assets/Script/Manager/FilterManager.cs    |   13 +-
 .../BgSettingsUI/GlobalFilterListMenuItem.cs  |   18 +
 .../GlobalFilterListMenuItem.cs.meta          |   11 +
 .../Script/UI/BgSettingsUI/UI_FilterItem.cs   |   48 +
 .../UI/BgSettingsUI/UI_FilterItem.cs.meta     |   11 +
 .../UI/CommandDispatcher/CommandDispatcher.cs |    7 +-
 .../UI/CommandDispatcher/CommandExcuter.cs    |   22 +-
 .../Assets/Script/UI/OptionUI/OptionUI.cs     |    2 +
 14 files changed, 2879 insertions(+), 239 deletions(-)
 create mode 100644 AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/GlobalFilter_Template.prefab
 create mode 100644 AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/GlobalFilter_Template.prefab.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/FilterItemTemplate.prefab
 create mode 100644 AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/FilterItemTemplate.prefab.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs.meta
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs.meta

diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
index df742867..ec11ad52 100644
--- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
+++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
@@ -91,31 +91,43 @@ MonoBehaviour:
   MenuSetting:
   - Icon: {fileID: 21300000, guid: c300d49e84cf0fb4186c750320e50146, type: 3}
     Name: Settings
+    SubTitle: 
     Description: 
     OverrideTemplate: {fileID: 0}
     SubMenus:
     - Icon: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
       Name: "\u80CC\u666F"
+      SubTitle: 
       Description: 
       OverrideTemplate: {fileID: 1430691205543631730, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
       SubMenus: []
+    - Icon: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
+      Name: "\u5168\u5C40\u6EE4\u955C"
+      SubTitle: 
+      Description: 
+      OverrideTemplate: {fileID: 6299221187810587914, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      SubMenus: []
   - Icon: {fileID: 21300000, guid: 1b52cdd34b39a8c4fa0dad6f2007e2f3, type: 3}
     Name: Game
+    SubTitle: 
     Description: 
     OverrideTemplate: {fileID: 0}
     SubMenus:
     - Icon: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
       Name: NES
+      SubTitle: 
       Description: Nintendo Entertainment System / Family Computer
       OverrideTemplate: {fileID: -3959751710151339114, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       SubMenus: []
   - Icon: {fileID: 21300000, guid: ecce24ec6d4b5b546af85d64ba55a3a2, type: 3}
     Name: "\u8054\u673A"
+    SubTitle: 
     Description: 
     OverrideTemplate: {fileID: 0}
     SubMenus:
     - Icon: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
       Name: "\u623F\u95F4\u5217\u8868"
+      SubTitle: 
       Description: "\u5728\u7EBF\u623F\u95F4\u5217\u8868"
       OverrideTemplate: {fileID: 5344633969095406978, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       SubMenus: []
@@ -295,9 +307,9 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
-  - {fileID: 4659014913123200460}
-  - {fileID: 220615534954448778}
-  - {fileID: 7735430021802811115}
+  - {fileID: 4917662378564699427}
+  - {fileID: 3515890118332280186}
+  - {fileID: 4663124316874729550}
   m_Father: {fileID: 6855144573435021451}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -346,137 +358,235 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
---- !u!1001 &1780217881274042711
+--- !u!1001 &569159597613784287
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
-    m_TransformParent: {fileID: 7102897325704768026}
+    m_TransformParent: {fileID: 8631793682019204075}
     m_Modifications:
-    - target: {fileID: 632697230221148209, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Alpha
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Text
-      value: Game
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 734025543935719296, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 991446423622995247, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Text
+      value: "\u623F\u95F4\u5217\u8868"
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_Pivot.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_Pivot.y
       value: 0.5
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_RootOrder
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_AnchorMax.x
       value: 0.5
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0.5
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_AnchorMin.x
       value: 0.5
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_AnchorMin.y
       value: 0.5
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_SizeDelta.x
-      value: 200
+      value: 144
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_SizeDelta.y
-      value: 203
+      value: 104
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalPosition.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalPosition.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalPosition.z
-      value: -10800
+      value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalRotation.w
       value: 1
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalRotation.x
-      value: -0
+      value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalRotation.y
-      value: -0
+      value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalRotation.z
-      value: -0
+      value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 296.00006
+      value: -72
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -285
+      value: -171
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalEulerAnglesHint.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalEulerAnglesHint.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Name
-      value: Game
-      objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+    - target: {fileID: 2619187604372594158, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
       propertyPath: m_Sprite
       value: 
-      objectReference: {fileID: 21300000, guid: 1b52cdd34b39a8c4fa0dad6f2007e2f3, type: 3}
-    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalScale.x
-      value: 0.85
+      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
+    - target: {fileID: 3189920797946144379, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Name
+      value: "\u623F\u95F4\u5217\u8868"
       objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalScale.y
-      value: 0.85
+    - target: {fileID: 3380485461544738227, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Text
+      value: "\u5728\u7EBF\u623F\u95F4\u5217\u8868"
       objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalScale.z
-      value: 0.85
+    - target: {fileID: 5331629140490413834, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Alpha
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6771349210554360888, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
       objectReference: {fileID: 0}
     m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
---- !u!224 &220615534954448778 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 1780217881274042711}
-  m_PrefabAsset: {fileID: 0}
---- !u!224 &3779431496555582511 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 1780217881274042711}
-  m_PrefabAsset: {fileID: 0}
+  m_SourcePrefab: {fileID: 100100000, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
 --- !u!1001 &2899142591024425643
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -584,6 +694,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4541943946029862829, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4541943946029862829, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4541943946029862829, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4541943946029862829, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4541943946029862829, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4541943946029862829, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5353336693430589123, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
       propertyPath: m_Pivot.x
       value: 0.5
@@ -707,128 +841,7 @@ RectTransform:
   m_CorrespondingSourceObject: {fileID: 5353336693430589123, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
   m_PrefabInstance: {fileID: 2899142591024425643}
   m_PrefabAsset: {fileID: 0}
---- !u!1001 &6557656212931348138
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 6639766947473395022}
-    m_Modifications:
-    - target: {fileID: 734025543935719296, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Text
-      value: "\u623F\u95F4\u5217\u8868"
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 144
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 104
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: -72
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: -171
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2619187604372594158, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
-    - target: {fileID: 3189920797946144379, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Name
-      value: "\u623F\u95F4\u5217\u8868"
-      objectReference: {fileID: 0}
-    - target: {fileID: 3380485461544738227, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Text
-      value: "\u5728\u7EBF\u623F\u95F4\u5217\u8868"
-      objectReference: {fileID: 0}
-    - target: {fileID: 5331629140490413834, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Alpha
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
---- !u!1001 &6562720418471568145
+--- !u!1001 &3130460775857496999
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
@@ -841,7 +854,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Text
-      value: Settings
+      value: Game
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Pivot.x
@@ -853,31 +866,31 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_RootOrder
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.x
-      value: 200
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.y
-      value: 203
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalPosition.x
@@ -889,7 +902,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalPosition.z
-      value: -10800
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalRotation.w
@@ -909,11 +922,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 296.00006
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -285
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalEulerAnglesHint.x
@@ -927,14 +940,18 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 2060695589654091386, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: SubMenuItemTemplate
+      value: 
+      objectReference: {fileID: 0}
     - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Name
-      value: Settings
+      value: Game
       objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Sprite
       value: 
-      objectReference: {fileID: 21300000, guid: c300d49e84cf0fb4186c750320e50146, type: 3}
+      objectReference: {fileID: 21300000, guid: 1b52cdd34b39a8c4fa0dad6f2007e2f3, type: 3}
     - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalScale.x
       value: 0.85
@@ -949,22 +966,22 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
---- !u!224 &4659014913123200460 stripped
+--- !u!224 &3515890118332280186 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 6562720418471568145}
+  m_PrefabInstance: {fileID: 3130460775857496999}
   m_PrefabAsset: {fileID: 0}
---- !u!224 &8634756338092506729 stripped
+--- !u!224 &555639496993586911 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 6562720418471568145}
+  m_PrefabInstance: {fileID: 3130460775857496999}
   m_PrefabAsset: {fileID: 0}
---- !u!1001 &7905917255821350460
+--- !u!1001 &6101347759819524814
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
-    m_TransformParent: {fileID: 8634756338092506729}
+    m_TransformParent: {fileID: 8305763209627571846}
     m_Modifications:
     - target: {fileID: 734025543935719296, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
       propertyPath: m_IsActive
@@ -1074,13 +1091,121 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
---- !u!1001 &8134229408492097590
+--- !u!1001 &6561160601757427347
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
@@ -1109,27 +1234,27 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.x
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.y
-      value: 0.5
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.x
-      value: 200
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.y
-      value: 203
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalPosition.x
@@ -1141,7 +1266,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalPosition.z
-      value: -10800
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalRotation.w
@@ -1161,11 +1286,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: 296.00006
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.y
-      value: -285
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalEulerAnglesHint.x
@@ -1201,22 +1326,153 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
---- !u!224 &7735430021802811115 stripped
+--- !u!224 &4663124316874729550 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 8134229408492097590}
+  m_PrefabInstance: {fileID: 6561160601757427347}
   m_PrefabAsset: {fileID: 0}
---- !u!224 &6639766947473395022 stripped
+--- !u!224 &8631793682019204075 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 8134229408492097590}
+  m_PrefabInstance: {fileID: 6561160601757427347}
   m_PrefabAsset: {fileID: 0}
---- !u!1001 &8245239508308569314
+--- !u!1001 &6882725030663359486
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
-    m_TransformParent: {fileID: 3779431496555582511}
+    m_TransformParent: {fileID: 7102897325704768026}
+    m_Modifications:
+    - target: {fileID: 632697230221148209, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Alpha
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Text
+      value: Settings
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_RootOrder
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Name
+      value: Settings
+      objectReference: {fileID: 0}
+    - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: c300d49e84cf0fb4186c750320e50146, type: 3}
+    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalScale.x
+      value: 0.85
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalScale.y
+      value: 0.85
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalScale.z
+      value: 0.85
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+--- !u!224 &4917662378564699427 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+  m_PrefabInstance: {fileID: 6882725030663359486}
+  m_PrefabAsset: {fileID: 0}
+--- !u!224 &8305763209627571846 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+  m_PrefabInstance: {fileID: 6882725030663359486}
+  m_PrefabAsset: {fileID: 0}
+--- !u!1001 &7101169691603877952
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 555639496993586911}
     m_Modifications:
     - target: {fileID: 734025543935719296, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_IsActive
@@ -1226,6 +1482,26 @@ PrefabInstance:
       propertyPath: m_Text
       value: NES
       objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_Pivot.x
       value: 0
@@ -1326,9 +1602,326 @@ PrefabInstance:
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_Sprite
       value: 
       objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+--- !u!1001 &7970679267087372870
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 8305763209627571846}
+    m_Modifications:
+    - target: {fileID: 734025543935719296, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 991446423622995247, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Text
+      value: "\u5168\u5C40\u6EE4\u955C"
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_RootOrder
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 144
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 104
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: -72
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -291
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2619187604372594158, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3}
+    - target: {fileID: 3189920797946144379, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Name
+      value: "\u5168\u5C40\u6EE4\u955C"
+      objectReference: {fileID: 0}
+    - target: {fileID: 3380485461544738227, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Text
+      value: 
+      objectReference: {fileID: 0}
+    - target: {fileID: 5331629140490413834, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Alpha
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6771349210554360888, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/GlobalFilter_Template.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/GlobalFilter_Template.prefab
new file mode 100644
index 00000000..236bdf54
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/GlobalFilter_Template.prefab
@@ -0,0 +1,1107 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &29419265480821815
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8126322204359135913}
+  - component: {fileID: 2718916271043989317}
+  - component: {fileID: 3380485461544738227}
+  m_Layer: 5
+  m_Name: Descript
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8126322204359135913
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 29419265480821815}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8789823129857705082}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 33}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &2718916271043989317
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 29419265480821815}
+  m_CullTransparentMesh: 1
+--- !u!114 &3380485461544738227
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 29419265480821815}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 20
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 300
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: DESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTION
+--- !u!1 &734025543935719296
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1323634865265500141}
+  - component: {fileID: 5792146190930927166}
+  - component: {fileID: 2619187604372594158}
+  - component: {fileID: 1779247868001543556}
+  - component: {fileID: 4496630961732192070}
+  - component: {fileID: 2059277597780235898}
+  m_Layer: 5
+  m_Name: shadowIcon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1323634865265500141
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 6087025893861054323}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5792146190930927166
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_CullTransparentMesh: 1
+--- !u!114 &2619187604372594158
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 230e155ce0d5a8d4283675d040631efc, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1779247868001543556
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f8b2ed11d675446c5a49da1ea296d490, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Version: 300
+  m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
+  m_EffectFactor: 0
+  m_ColorFactor: 0
+  m_BlurFactor: 0
+  m_EffectMode: 0
+  m_ColorMode: 1
+  m_BlurMode: 3
+  m_AdvancedBlur: 1
+  m_ShadowBlur: 1
+  m_ShadowStyle: 0
+  m_ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_EffectDistance: {x: 1, y: -1}
+  m_UseGraphicAlpha: 1
+  m_EffectColor: {r: 1, g: 1, b: 1, a: 1}
+  m_AdditionalShadows: []
+--- !u!114 &4496630961732192070
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0848bff101191904ead4bb831f7084db, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_BlurFactor: 1
+  m_Style: 3
+  m_AdditionalShadows: []
+  m_EffectColor: {r: 1, g: 1, b: 1, a: 0}
+  m_EffectDistance: {x: 8, y: 8}
+  m_UseGraphicAlpha: 0
+--- !u!95 &2059277597780235898
+Animator:
+  serializedVersion: 3
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_Enabled: 1
+  m_Avatar: {fileID: 0}
+  m_Controller: {fileID: 9100000, guid: 0b3ccf7414d2ead43be0cd33b6e1b53c, type: 2}
+  m_CullingMode: 0
+  m_UpdateMode: 0
+  m_ApplyRootMotion: 0
+  m_LinearVelocityBlending: 0
+  m_WarningMessage: 
+  m_HasTransformHierarchy: 1
+  m_AllowConstantClipSamplingOptimization: 1
+  m_KeepAnimatorControllerStateOnDisable: 0
+--- !u!1 &1776357407830023228
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6087025893861054323}
+  - component: {fileID: 7036072602178187444}
+  - component: {fileID: 6771349210554360888}
+  - component: {fileID: 3709368495556978651}
+  m_Layer: 5
+  m_Name: Icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6087025893861054323
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1776357407830023228}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1323634865265500141}
+  - {fileID: 331028397738758164}
+  m_Father: {fileID: 8754483333502849411}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 1, y: 0.5}
+--- !u!222 &7036072602178187444
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1776357407830023228}
+  m_CullTransparentMesh: 1
+--- !u!114 &6771349210554360888
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1776357407830023228}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 230e155ce0d5a8d4283675d040631efc, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &3709368495556978651
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1776357407830023228}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: 144
+  m_PreferredHeight: 104
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
+--- !u!1 &1813396448589485488
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4467178468921796307}
+  - component: {fileID: 8568189430970172828}
+  - component: {fileID: 6941538197753025297}
+  m_Layer: 5
+  m_Name: SelectArrow
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4467178468921796307
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1813396448589485488}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 331028397738758164}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0.5}
+  m_AnchorMax: {x: 0, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 63, y: 70}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &8568189430970172828
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1813396448589485488}
+  m_CullTransparentMesh: 1
+--- !u!114 &6941538197753025297
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1813396448589485488}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 0
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: -1023481969782777897, guid: d518d00d4940e854bbe45d9ef891401a, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &2309024030484972790
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 9038541706626733903}
+  - component: {fileID: 4977539735028594724}
+  - component: {fileID: 6225050927489615674}
+  - component: {fileID: 7081002146975090139}
+  m_Layer: 5
+  m_Name: Image
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &9038541706626733903
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2309024030484972790}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8789823129857705082}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 4}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4977539735028594724
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2309024030484972790}
+  m_CullTransparentMesh: 1
+--- !u!114 &6225050927489615674
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2309024030484972790}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &7081002146975090139
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2309024030484972790}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: -1
+  m_PreferredHeight: -1
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
+--- !u!1 &3189920797946144379
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1998281097548910301}
+  - component: {fileID: 6299221187810587914}
+  - component: {fileID: 5700455559359757662}
+  m_Layer: 5
+  m_Name: GlobalFilter_Template
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1998281097548910301
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3189920797946144379}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 8754483333502849411}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 144, y: 104}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!114 &6299221187810587914
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3189920797946144379}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0ac5f46132259b045b524fc310dbd532, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  Icon: {fileID: 6771349210554360888}
+  Txt: {fileID: 991446423622995247}
+  SubTitle: {fileID: 0}
+  spline: {fileID: 0}
+  Descript: {fileID: 3380485461544738227}
+  Root: {fileID: 8754483333502849411}
+  ShadowIcon: {fileID: 2619187604372594158}
+  InfoNode: {fileID: 5331629140490413834}
+  SubMenuItemGroup: {fileID: 4672405243908051711}
+  SelectScale: 1
+  UnSelectScale: 1
+  RomGroupRoot: {fileID: 3086674949377227884}
+--- !u!114 &5700455559359757662
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3189920797946144379}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: 200
+  m_PreferredHeight: 230
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
+--- !u!1 &3462611600707696275
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2303118795734916657}
+  - component: {fileID: 6792036789108903940}
+  - component: {fileID: 4997733671603798451}
+  m_Layer: 5
+  m_Name: viewport
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2303118795734916657
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3462611600707696275}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 8865437771338118001}
+  m_Father: {fileID: 331028397738758164}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6792036789108903940
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3462611600707696275}
+  m_CullTransparentMesh: 1
+--- !u!114 &4997733671603798451
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3462611600707696275}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &3811189825355447390
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 331028397738758164}
+  - component: {fileID: 3428297980621487917}
+  - component: {fileID: 4672405243908051711}
+  - component: {fileID: 3086674949377227884}
+  m_Layer: 5
+  m_Name: RomGroupScroll
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &331028397738758164
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3811189825355447390}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 2303118795734916657}
+  - {fileID: 4467178468921796307}
+  m_Father: {fileID: 6087025893861054323}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0.5}
+  m_AnchorMax: {x: 1, y: 0.5}
+  m_AnchoredPosition: {x: 0.000015258789, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!114 &3428297980621487917
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3811189825355447390}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Content: {fileID: 8865437771338118001}
+  m_Horizontal: 0
+  m_Vertical: 1
+  m_MovementType: 0
+  m_Elasticity: 0.1
+  m_Inertia: 1
+  m_DecelerationRate: 0.135
+  m_ScrollSensitivity: 1
+  m_Viewport: {fileID: 2303118795734916657}
+  m_HorizontalScrollbar: {fileID: 0}
+  m_VerticalScrollbar: {fileID: 0}
+  m_HorizontalScrollbarVisibility: 0
+  m_VerticalScrollbarVisibility: 0
+  m_HorizontalScrollbarSpacing: 0
+  m_VerticalScrollbarSpacing: 0
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &4672405243908051711
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3811189825355447390}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1d1e3e91ac34bc8468f357ee247ffb6a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_menuItemRoot: {fileID: 0}
+  SubMenuItemTemplate: {fileID: 0}
+  alphaGroup: {fileID: 0}
+  m_selectItemPosition: {x: 50, y: -51}
+  step: 50
+  splitStep: 200
+  m_selectArrow: {fileID: 4467178468921796307}
+  ArrowOffset: 60
+  WidthFix: 280
+  itemGroup: {fileID: 6055880809428073973}
+  srollRect: {fileID: 3428297980621487917}
+--- !u!225 &3086674949377227884
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3811189825355447390}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
+--- !u!1 &3993825260653792697
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8789823129857705082}
+  - component: {fileID: 3252398029444565139}
+  - component: {fileID: 5331629140490413834}
+  - component: {fileID: 3731805463351239481}
+  m_Layer: 5
+  m_Name: InfoNode
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8789823129857705082
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3993825260653792697}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 6095356919362338847}
+  - {fileID: 9038541706626733903}
+  - {fileID: 8126322204359135913}
+  m_Father: {fileID: 8754483333502849411}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!114 &3252398029444565139
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3993825260653792697}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 20
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 3
+  m_Spacing: 10
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 0
+  m_ChildControlWidth: 1
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!225 &5331629140490413834
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3993825260653792697}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
+--- !u!114 &3731805463351239481
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3993825260653792697}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: 600
+  m_PreferredHeight: -1
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
+--- !u!1 &5340761592919397836
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6095356919362338847}
+  - component: {fileID: 7651669947470814669}
+  - component: {fileID: 991446423622995247}
+  - component: {fileID: 2988781737833642094}
+  m_Layer: 5
+  m_Name: Name
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6095356919362338847
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5340761592919397836}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8789823129857705082}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 33}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &7651669947470814669
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5340761592919397836}
+  m_CullTransparentMesh: 1
+--- !u!114 &991446423622995247
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5340761592919397836}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 30
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 300
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: NAME
+--- !u!114 &2988781737833642094
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5340761592919397836}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
+  m_EffectDistance: {x: 1.5, y: 1.5}
+  m_UseGraphicAlpha: 0
+--- !u!1 &6164337287601107676
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8865437771338118001}
+  - component: {fileID: 6055880809428073973}
+  - component: {fileID: 1286529697012677180}
+  m_Layer: 5
+  m_Name: SettingGroup
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8865437771338118001
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6164337287601107676}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2303118795734916657}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 1}
+--- !u!114 &6055880809428073973
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6164337287601107676}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fdacbe30e88f6a844a435595a4affdbb, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  m_StartCorner: 0
+  m_StartAxis: 0
+  m_CellSize: {x: 500, y: 100}
+  m_Spacing: {x: 0, y: 20}
+  m_Constraint: 1
+  m_ConstraintCount: 1
+  ItemTemplate: {fileID: 1998281097548910301, guid: 52fd21b2efaed0c4fa5229087906809a, type: 3}
+  ViewRect: {fileID: 2303118795734916657}
+  PauseUpdateView: 0
+--- !u!114 &1286529697012677180
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6164337287601107676}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 0
+  m_VerticalFit: 2
+--- !u!1 &8290338740711049006
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8754483333502849411}
+  - component: {fileID: 3637207717728009549}
+  - component: {fileID: 557410003364511780}
+  m_Layer: 5
+  m_Name: Root
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8754483333502849411
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8290338740711049006}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 6087025893861054323}
+  - {fileID: 8789823129857705082}
+  m_Father: {fileID: 1998281097548910301}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0.5}
+  m_AnchorMax: {x: 0, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 130}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!114 &3637207717728009549
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8290338740711049006}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 3
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 0
+  m_ChildForceExpandHeight: 0
+  m_ChildControlWidth: 1
+  m_ChildControlHeight: 1
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!114 &557410003364511780
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8290338740711049006}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 2
+  m_VerticalFit: 0
diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/GlobalFilter_Template.prefab.meta b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/GlobalFilter_Template.prefab.meta
new file mode 100644
index 00000000..6203cb79
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/SubMenuItemTemplates/GlobalFilter_Template.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3ecc1c637c161184099b69c3d7a0f354
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/FilterItemTemplate.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/FilterItemTemplate.prefab
new file mode 100644
index 00000000..df1f9a29
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/FilterItemTemplate.prefab
@@ -0,0 +1,822 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &29419265480821815
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8126322204359135913}
+  - component: {fileID: 2718916271043989317}
+  - component: {fileID: 3380485461544738227}
+  m_Layer: 5
+  m_Name: Descript
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8126322204359135913
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 29419265480821815}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8789823129857705082}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 33}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &2718916271043989317
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 29419265480821815}
+  m_CullTransparentMesh: 1
+--- !u!114 &3380485461544738227
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 29419265480821815}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 20
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 300
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: DESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTIONDESCRIBTION
+--- !u!1 &734025543935719296
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1323634865265500141}
+  - component: {fileID: 5792146190930927166}
+  - component: {fileID: 2619187604372594158}
+  - component: {fileID: 1779247868001543556}
+  - component: {fileID: 4496630961732192070}
+  - component: {fileID: 2059277597780235898}
+  m_Layer: 5
+  m_Name: shadowIcon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1323634865265500141
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 2}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8754483333502849411}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0.5}
+  m_AnchorMax: {x: 0, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &5792146190930927166
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_CullTransparentMesh: 1
+--- !u!114 &2619187604372594158
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 0.4577373, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 8706af46c93329b4da3c86c0b13b886e, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 0
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1779247868001543556
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f8b2ed11d675446c5a49da1ea296d490, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Version: 300
+  m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
+  m_EffectFactor: 0
+  m_ColorFactor: 0
+  m_BlurFactor: 0
+  m_EffectMode: 0
+  m_ColorMode: 1
+  m_BlurMode: 3
+  m_AdvancedBlur: 1
+  m_ShadowBlur: 1
+  m_ShadowStyle: 0
+  m_ShadowColor: {r: 0, g: 0, b: 0, a: 1}
+  m_EffectDistance: {x: 1, y: -1}
+  m_UseGraphicAlpha: 1
+  m_EffectColor: {r: 1, g: 1, b: 1, a: 1}
+  m_AdditionalShadows: []
+--- !u!114 &4496630961732192070
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0848bff101191904ead4bb831f7084db, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_BlurFactor: 1
+  m_Style: 3
+  m_AdditionalShadows: []
+  m_EffectColor: {r: 1, g: 1, b: 1, a: 0}
+  m_EffectDistance: {x: 8, y: 8}
+  m_UseGraphicAlpha: 0
+--- !u!95 &2059277597780235898
+Animator:
+  serializedVersion: 3
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 734025543935719296}
+  m_Enabled: 1
+  m_Avatar: {fileID: 0}
+  m_Controller: {fileID: 9100000, guid: 0b3ccf7414d2ead43be0cd33b6e1b53c, type: 2}
+  m_CullingMode: 0
+  m_UpdateMode: 0
+  m_ApplyRootMotion: 0
+  m_LinearVelocityBlending: 0
+  m_WarningMessage: 
+  m_HasTransformHierarchy: 1
+  m_AllowConstantClipSamplingOptimization: 1
+  m_KeepAnimatorControllerStateOnDisable: 0
+--- !u!1 &1776357407830023228
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6087025893861054323}
+  - component: {fileID: 7036072602178187444}
+  - component: {fileID: 6771349210554360888}
+  m_Layer: 5
+  m_Name: Icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6087025893861054323
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1776357407830023228}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 2}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8754483333502849411}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: -200, y: 0}
+  m_SizeDelta: {x: -396, y: 4}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7036072602178187444
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1776357407830023228}
+  m_CullTransparentMesh: 1
+--- !u!114 &6771349210554360888
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1776357407830023228}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 8706af46c93329b4da3c86c0b13b886e, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 0
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &3189920797946144379
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1998281097548910301}
+  - component: {fileID: 5700455559359757662}
+  - component: {fileID: 1719219194513122235}
+  m_Layer: 5
+  m_Name: FilterItemTemplate
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1998281097548910301
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3189920797946144379}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 8754483333502849411}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 500, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &5700455559359757662
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3189920797946144379}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: 200
+  m_PreferredHeight: 230
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
+--- !u!114 &1719219194513122235
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3189920797946144379}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 267dda362a6090d42b48e3cced57ae9c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  Icon: {fileID: 6771349210554360888}
+  Txt: {fileID: 991446423622995247}
+  SubTitle: {fileID: 6534898873012636952}
+  spline: {fileID: 4812759387377418448}
+  Descript: {fileID: 3380485461544738227}
+  Root: {fileID: 8754483333502849411}
+  ShadowIcon: {fileID: 2619187604372594158}
+  InfoNode: {fileID: 6788248266412682264}
+  SubMenuItemGroup: {fileID: 0}
+  SelectScale: 1
+  UnSelectScale: 0.85
+--- !u!1 &3993825260653792697
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8789823129857705082}
+  - component: {fileID: 3252398029444565139}
+  - component: {fileID: 6788248266412682264}
+  - component: {fileID: 8081109478688381999}
+  - component: {fileID: 6660646139021869069}
+  m_Layer: 5
+  m_Name: InfoNode
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8789823129857705082
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3993825260653792697}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 6095356919362338847}
+  - {fileID: 6797116381500671839}
+  - {fileID: 6673031368290035463}
+  - {fileID: 8126322204359135913}
+  m_Father: {fileID: 8754483333502849411}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 100, y: 0}
+  m_SizeDelta: {x: 600, y: 0}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!114 &3252398029444565139
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3993825260653792697}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 20
+    m_Right: 0
+    m_Top: 13
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 0
+  m_ChildControlWidth: 1
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!225 &6788248266412682264
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3993825260653792697}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
+--- !u!222 &8081109478688381999
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3993825260653792697}
+  m_CullTransparentMesh: 1
+--- !u!114 &6660646139021869069
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3993825260653792697}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &5340761592919397836
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6095356919362338847}
+  - component: {fileID: 7651669947470814669}
+  - component: {fileID: 991446423622995247}
+  - component: {fileID: 8545526122445709124}
+  m_Layer: 5
+  m_Name: Name
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6095356919362338847
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5340761592919397836}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 8986746042327041630}
+  m_Father: {fileID: 8789823129857705082}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 33}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &7651669947470814669
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5340761592919397836}
+  m_CullTransparentMesh: 1
+--- !u!114 &991446423622995247
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5340761592919397836}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 30
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 300
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: NAME
+--- !u!114 &8545526122445709124
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5340761592919397836}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
+  m_EffectDistance: {x: 1.5, y: 1.5}
+  m_UseGraphicAlpha: 1
+--- !u!1 &5468696000904882177
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8986746042327041630}
+  - component: {fileID: 952406696262539679}
+  - component: {fileID: 6534898873012636952}
+  m_Layer: 5
+  m_Name: subTitle
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8986746042327041630
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5468696000904882177}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 6095356919362338847}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0.5}
+  m_AnchorMax: {x: 1, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 580, y: 33}
+  m_Pivot: {x: 1, y: 0.5}
+--- !u!222 &952406696262539679
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5468696000904882177}
+  m_CullTransparentMesh: 1
+--- !u!114 &6534898873012636952
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5468696000904882177}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 25
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 300
+    m_Alignment: 5
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: 4324234
+--- !u!1 &6688216270065609628
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6797116381500671839}
+  - component: {fileID: 5682159953164052307}
+  - component: {fileID: 4812759387377418448}
+  m_Layer: 5
+  m_Name: spline
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6797116381500671839
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6688216270065609628}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8789823129857705082}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 4}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5682159953164052307
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6688216270065609628}
+  m_CullTransparentMesh: 1
+--- !u!114 &4812759387377418448
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6688216270065609628}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8290338740711049006
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8754483333502849411}
+  m_Layer: 5
+  m_Name: Root
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8754483333502849411
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8290338740711049006}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1323634865265500141}
+  - {fileID: 6087025893861054323}
+  - {fileID: 8789823129857705082}
+  m_Father: {fileID: 1998281097548910301}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &9036340599819825964
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6673031368290035463}
+  m_Layer: 5
+  m_Name: space
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6673031368290035463
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9036340599819825964}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 8789823129857705082}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 10}
+  m_Pivot: {x: 0.5, y: 0.5}
diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/FilterItemTemplate.prefab.meta b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/FilterItemTemplate.prefab.meta
new file mode 100644
index 00000000..7d46e178
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/FilterItemTemplate.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 52fd21b2efaed0c4fa5229087906809a
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/AppSettings/BgColorSettings.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/AppSettings/BgColorSettings.cs
index 49b8a3fc..c48c68ad 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/AppSettings/BgColorSettings.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/AppSettings/BgColorSettings.cs
@@ -1,6 +1,4 @@
-using DG.Tweening;
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
 using UnityEngine;
 
 namespace AxibugEmuOnline.Client
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs
index af0795c4..aa0876d6 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs
@@ -11,6 +11,11 @@ namespace AxibugEmuOnline.Client
         private PostProcessProfile m_filterPorfile;
         private List<Filter> m_filters;
 
+        /// <summary>
+        /// 滤镜列表
+        /// </summary>
+        public IReadOnlyList<Filter> Filters => m_filters;
+
         public FilterManager(PostProcessVolume filterVolume)
         {
             m_filterPorfile = filterVolume.profile;
@@ -18,12 +23,7 @@ namespace AxibugEmuOnline.Client
 
             ShutDownFilter();
         }
-
-        /// <summary>
-        /// 滤镜列表
-        /// </summary>
-        public IReadOnlyList<Filter> Filters => m_filters;
-
+        
         /// <summary>
         /// 打开滤镜
         /// </summary>
@@ -49,6 +49,7 @@ namespace AxibugEmuOnline.Client
 
         public struct Filter
         {
+            public bool Empty => m_setting == null;
             public readonly string Name => m_setting.name;
 
             internal FilterEffect m_setting;
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs
new file mode 100644
index 00000000..fb4f1c10
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs
@@ -0,0 +1,18 @@
+using AxibugEmuOnline.Client.ClientCore;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace AxibugEmuOnline.Client
+{
+    public class GlobalFilterListMenuItem : VirtualSubMenuItem
+    {
+        protected override void GetVirtualListDatas(Action<object> datas)
+        {
+            List<object> list = new List<object>();
+            list.Add(new FilterManager.Filter());
+            list.AddRange(App.filter.Filters.Select(f => (object)f));
+            datas.Invoke(list);
+        }
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs.meta
new file mode 100644
index 00000000..9a543fd3
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0ac5f46132259b045b524fc310dbd532
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs
new file mode 100644
index 00000000..96be8a53
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs
@@ -0,0 +1,48 @@
+using AxibugEmuOnline.Client.ClientCore;
+using AxibugEmuOnline.Client.UI;
+using DG.Tweening;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Options;
+using System.Linq;
+using UnityEngine;
+
+namespace AxibugEmuOnline.Client
+{
+    /// <summary>
+    /// ������ɫ����UI
+    /// </summary>
+    public class UI_FilterItem : MenuItem, IVirtualItem
+    {
+        public int Index { get; set; }
+        public FilterManager.Filter Datacontext { get; private set; }
+
+        public void SetData(object data)
+        {
+            Datacontext = (FilterManager.Filter)data;
+
+            UpdateView();
+        }
+
+        private void Setting_OnColorChanged(XMBColor color)
+        {
+            UpdateView();
+        }
+
+        private void UpdateView()
+        {
+        }
+
+        public void SetDependencyProperty(object data)
+        {
+            SetSelectState(data is ThirdMenuRoot tr && tr.SelectIndex == Index);
+        }
+
+        public void Release()
+        {
+        }
+        public override bool OnEnterItem()
+        {
+            return false;
+        }
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs.meta
new file mode 100644
index 00000000..8c1245cf
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 267dda362a6090d42b48e3cced57ae9c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
index 1631ee93..aa376203 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandDispatcher.cs
@@ -1,4 +1,5 @@
 using AxibugEmuOnline.Client.ClientCore;
+using System;
 using System.Collections.Generic;
 using UnityEngine;
 
@@ -48,6 +49,11 @@ namespace AxibugEmuOnline.Client
             Instance = null;
         }
 
+        public bool IsRegisted(CommandExecuter commandExecuter)
+        {
+            return m_register.Contains(commandExecuter) || m_registerHigh.Contains(commandExecuter);
+        }
+
         public void RegistController(CommandExecuter controller)
         {
             if (!controller.AloneMode)
@@ -125,7 +131,6 @@ namespace AxibugEmuOnline.Client
             normal = m_register;
             alone = m_registerHigh;
         }
-
 #endif
     }
 }
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs
index 992f95e3..97614984 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/CommandDispatcher/CommandExcuter.cs
@@ -17,6 +17,7 @@ namespace AxibugEmuOnline.Client
 
         public abstract bool Enable { get; }
         public virtual bool AloneMode { get; }
+        public bool Registed => CommandDispatcher.Instance.IsRegisted(this);
 
         protected virtual void Awake()
         {
@@ -32,10 +33,20 @@ namespace AxibugEmuOnline.Client
 
         protected virtual void Update()
         {
-            m_pulsInvoker_Left.Update(Time.deltaTime);
-            m_pulsInvoker_Right.Update(Time.deltaTime);
-            m_pulsInvoker_Up.Update(Time.deltaTime);
-            m_pulsInvoker_Down.Update(Time.deltaTime);
+            if (Registed)
+            {
+                m_pulsInvoker_Left.Update(Time.deltaTime);
+                m_pulsInvoker_Right.Update(Time.deltaTime);
+                m_pulsInvoker_Up.Update(Time.deltaTime);
+                m_pulsInvoker_Down.Update(Time.deltaTime);
+            }
+            else
+            {
+                m_pulsInvoker_Left.DisActive();
+                m_pulsInvoker_Right.DisActive();
+                m_pulsInvoker_Up.DisActive();
+                m_pulsInvoker_Down.DisActive();
+            }
         }
 
 
@@ -49,8 +60,7 @@ namespace AxibugEmuOnline.Client
 
         public void ExecuteCommand(EnumCommand cmd, bool cancel)
         {
-            if(cmd == EnumCommand.NONE) return;
-
+            if (cmd == EnumCommand.NONE) return;
             if (!cancel)
             {
                 switch (cmd)
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs
index 3aa908d5..d79b6d7c 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs
@@ -69,6 +69,8 @@ namespace AxibugEmuOnline.Client
         protected override void Update()
         {
             UpdateMenuState();
+
+            base.Update();
         }
 
         private void UpdateMenuState()

From 3694b0e027575aac85157a30ba73cafbe592605a Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Thu, 28 Nov 2024 10:08:49 +0800
Subject: [PATCH 09/10] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=BB=A4=E9=95=9C?=
 =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitignore                                    |    6 +-
 .../Resources/UIPrefabs/LaunchUI.prefab       | 1559 +++++++++--------
 .../Assets/Scene/AxibugEmuOnline.Client.unity | 1272 +++++++++++++-
 AxibugEmuOnline.Client/Assets/Script/App.cs   |    4 +-
 .../Assets/Script/Filter/FilterEffect.cs      |    2 +
 .../Script/Filter/FixingPixelArtGrille.cs     |    2 +
 .../Assets/Script/Initer.cs                   |    7 +-
 .../Assets/Script/Manager/FilterManager.cs    |   57 +-
 .../Assets/Script/UI/AlphaWraper.cs           |   93 +
 .../Assets/Script/UI/AlphaWraper.cs.meta      |   11 +
 .../Script/UI/AutoRaycastCanvasGroup.cs       |    2 -
 .../BgSettingsUI/GlobalFilterListMenuItem.cs  |   16 +-
 .../Script/UI/BgSettingsUI/UI_FilterItem.cs   |   21 +-
 .../Assets/Script/UI/LaunchUI.cs              |    3 +-
 .../Assets/Script/UI/MenuItem.cs              |    4 +
 15 files changed, 2226 insertions(+), 833 deletions(-)
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/AlphaWraper.cs
 create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/AlphaWraper.cs.meta

diff --git a/.gitignore b/.gitignore
index 91c0c238..53bd8090 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,7 +13,5 @@
 /AxibugEmuOnline.Client/ProjectSettings/ProjectVersion.txt
 /AxibugEmuOnline.Client/ProjectSettings/AutoStreamingSettings.asset
 /AxibugEmuOnline.Client/Logs
-/virtuanessrc097-master/save
-/virtuanessrc097-master/.vs
-/virtuanessrc097-master/Debug
-/virtuanessrc097-master/VirtuaNES.ini
+
+/virtuanessrc097-master
diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
index ec11ad52..55e33094 100644
--- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
+++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
@@ -102,7 +102,7 @@ MonoBehaviour:
       OverrideTemplate: {fileID: 1430691205543631730, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
       SubMenus: []
     - Icon: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
-      Name: "\u5168\u5C40\u6EE4\u955C"
+      Name: "\u6EE4\u955C"
       SubTitle: 
       Description: 
       OverrideTemplate: {fileID: 6299221187810587914, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
@@ -145,6 +145,7 @@ GameObject:
   - component: {fileID: 1639091783724093861}
   - component: {fileID: 1639091783724093860}
   - component: {fileID: 3473513813641582791}
+  - component: {fileID: 3025550092845034426}
   m_Layer: 5
   m_Name: bg
   m_TagString: Untagged
@@ -222,6 +223,18 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   imgUI: {fileID: 1639091783724093860}
+--- !u!225 &3025550092845034426
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1639091783724093882}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
 --- !u!1 &1639091784002085451
 GameObject:
   m_ObjectHideFlags: 0
@@ -307,9 +320,9 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
-  - {fileID: 4917662378564699427}
-  - {fileID: 3515890118332280186}
-  - {fileID: 4663124316874729550}
+  - {fileID: 2224144437669052161}
+  - {fileID: 7413443247915580134}
+  - {fileID: 2763527618521453150}
   m_Father: {fileID: 6855144573435021451}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -358,235 +371,366 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
---- !u!1001 &569159597613784287
+--- !u!1001 &389259582505710044
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
-    m_TransformParent: {fileID: 8631793682019204075}
+    m_TransformParent: {fileID: 7102897325704768026}
     m_Modifications:
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 734025543935719296, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Text
-      value: "\u623F\u95F4\u5217\u8868"
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 144
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 104
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: -72
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: -171
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2619187604372594158, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
-    - target: {fileID: 3189920797946144379, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Name
-      value: "\u623F\u95F4\u5217\u8868"
-      objectReference: {fileID: 0}
-    - target: {fileID: 3380485461544738227, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Text
-      value: "\u5728\u7EBF\u623F\u95F4\u5217\u8868"
-      objectReference: {fileID: 0}
-    - target: {fileID: 5331629140490413834, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 632697230221148209, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Text
+      value: Settings
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_RootOrder
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
+    - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Name
+      value: Settings
       objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Sprite
       value: 
-      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      objectReference: {fileID: 21300000, guid: c300d49e84cf0fb4186c750320e50146, type: 3}
+    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalScale.x
+      value: 0.85
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalScale.y
+      value: 0.85
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalScale.z
+      value: 0.85
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+--- !u!224 &2224144437669052161 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+  m_PrefabInstance: {fileID: 389259582505710044}
+  m_PrefabAsset: {fileID: 0}
+--- !u!224 &2999762217850006692 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+  m_PrefabInstance: {fileID: 389259582505710044}
+  m_PrefabAsset: {fileID: 0}
+--- !u!1001 &681647360022476971
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 5880895282580580675}
+    m_Modifications:
+    - target: {fileID: 734025543935719296, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 991446423622995247, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Text
+      value: NES
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_AnchorMin.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_SizeDelta.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Pivot.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_RootOrder
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 144
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 104
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: -72
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -171
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2619187604372594158, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 3189920797946144379, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Name
+      value: NES
+      objectReference: {fileID: 0}
+    - target: {fileID: 3380485461544738227, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Text
+      value: Nintendo Entertainment System / Family Computer
+      objectReference: {fileID: 0}
+    - target: {fileID: 5331629140490413834, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Alpha
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_AnchorMin.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_SizeDelta.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_SizeDelta.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6771349210554360888, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
     m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+  m_SourcePrefab: {fileID: 100100000, guid: b170104e466853c49b29f9b5b103364e, type: 3}
 --- !u!1001 &2899142591024425643
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -841,7 +985,465 @@ RectTransform:
   m_CorrespondingSourceObject: {fileID: 5353336693430589123, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
   m_PrefabInstance: {fileID: 2899142591024425643}
   m_PrefabAsset: {fileID: 0}
---- !u!1001 &3130460775857496999
+--- !u!1001 &3139996406220665639
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 2999762217850006692}
+    m_Modifications:
+    - target: {fileID: 734025543935719296, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 991446423622995247, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Text
+      value: "\u6EE4\u955C"
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_RootOrder
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 144
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 104
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: -72
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -291
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2619187604372594158, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
+    - target: {fileID: 3189920797946144379, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Name
+      value: "\u6EE4\u955C"
+      objectReference: {fileID: 0}
+    - target: {fileID: 3380485461544738227, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Text
+      value: 
+      objectReference: {fileID: 0}
+    - target: {fileID: 5331629140490413834, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Alpha
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6771349210554360888, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+--- !u!1001 &3238096749920673603
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 1235941198720991739}
+    m_Modifications:
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 734025543935719296, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 991446423622995247, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Text
+      value: "\u623F\u95F4\u5217\u8868"
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_RootOrder
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 144
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 104
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: -72
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -171
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2619187604372594158, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
+    - target: {fileID: 3189920797946144379, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Name
+      value: "\u623F\u95F4\u5217\u8868"
+      objectReference: {fileID: 0}
+    - target: {fileID: 3380485461544738227, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Text
+      value: "\u5728\u7EBF\u623F\u95F4\u5217\u8868"
+      objectReference: {fileID: 0}
+    - target: {fileID: 5331629140490413834, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Alpha
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6771349210554360888, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+--- !u!1001 &4458941485277256835
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
@@ -854,7 +1456,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Text
-      value: Game
+      value: "\u8054\u673A"
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Pivot.x
@@ -866,7 +1468,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_RootOrder
-      value: 1
+      value: 2
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.x
@@ -940,18 +1542,14 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 2060695589654091386, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: SubMenuItemTemplate
-      value: 
-      objectReference: {fileID: 0}
     - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Name
-      value: Game
+      value: "\u8054\u673A"
       objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Sprite
       value: 
-      objectReference: {fileID: 21300000, guid: 1b52cdd34b39a8c4fa0dad6f2007e2f3, type: 3}
+      objectReference: {fileID: 21300000, guid: ecce24ec6d4b5b546af85d64ba55a3a2, type: 3}
     - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalScale.x
       value: 0.85
@@ -966,22 +1564,22 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
---- !u!224 &3515890118332280186 stripped
+--- !u!224 &2763527618521453150 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 3130460775857496999}
+  m_PrefabInstance: {fileID: 4458941485277256835}
   m_PrefabAsset: {fileID: 0}
---- !u!224 &555639496993586911 stripped
+--- !u!224 &1235941198720991739 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 3130460775857496999}
+  m_PrefabInstance: {fileID: 4458941485277256835}
   m_PrefabAsset: {fileID: 0}
---- !u!1001 &6101347759819524814
+--- !u!1001 &5029833525011635839
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
-    m_TransformParent: {fileID: 8305763209627571846}
+    m_TransformParent: {fileID: 2999762217850006692}
     m_Modifications:
     - target: {fileID: 734025543935719296, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
       propertyPath: m_IsActive
@@ -1205,7 +1803,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
---- !u!1001 &6561160601757427347
+--- !u!1001 &9032678552268534843
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
@@ -1218,7 +1816,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Text
-      value: "\u8054\u673A"
+      value: Game
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Pivot.x
@@ -1230,7 +1828,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_RootOrder
-      value: 2
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.x
@@ -1306,12 +1904,12 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Name
-      value: "\u8054\u673A"
+      value: Game
       objectReference: {fileID: 0}
     - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Sprite
       value: 
-      objectReference: {fileID: 21300000, guid: ecce24ec6d4b5b546af85d64ba55a3a2, type: 3}
+      objectReference: {fileID: 21300000, guid: 1b52cdd34b39a8c4fa0dad6f2007e2f3, type: 3}
     - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_LocalScale.x
       value: 0.85
@@ -1326,602 +1924,13 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
---- !u!224 &4663124316874729550 stripped
+--- !u!224 &7413443247915580134 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 6561160601757427347}
+  m_PrefabInstance: {fileID: 9032678552268534843}
   m_PrefabAsset: {fileID: 0}
---- !u!224 &8631793682019204075 stripped
+--- !u!224 &5880895282580580675 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 6561160601757427347}
+  m_PrefabInstance: {fileID: 9032678552268534843}
   m_PrefabAsset: {fileID: 0}
---- !u!1001 &6882725030663359486
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 7102897325704768026}
-    m_Modifications:
-    - target: {fileID: 632697230221148209, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Alpha
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Text
-      value: Settings
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Name
-      value: Settings
-      objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: c300d49e84cf0fb4186c750320e50146, type: 3}
-    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalScale.x
-      value: 0.85
-      objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalScale.y
-      value: 0.85
-      objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalScale.z
-      value: 0.85
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
---- !u!224 &4917662378564699427 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 6882725030663359486}
-  m_PrefabAsset: {fileID: 0}
---- !u!224 &8305763209627571846 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 6882725030663359486}
-  m_PrefabAsset: {fileID: 0}
---- !u!1001 &7101169691603877952
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 555639496993586911}
-    m_Modifications:
-    - target: {fileID: 734025543935719296, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Text
-      value: NES
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 144
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 104
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: -72
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: -171
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2619187604372594158, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
-    - target: {fileID: 3189920797946144379, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Name
-      value: NES
-      objectReference: {fileID: 0}
-    - target: {fileID: 3380485461544738227, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Text
-      value: Nintendo Entertainment System / Family Computer
-      objectReference: {fileID: 0}
-    - target: {fileID: 5331629140490413834, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Alpha
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: b170104e466853c49b29f9b5b103364e, type: 3}
---- !u!1001 &7970679267087372870
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 8305763209627571846}
-    m_Modifications:
-    - target: {fileID: 734025543935719296, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Text
-      value: "\u5168\u5C40\u6EE4\u955C"
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_RootOrder
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 144
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 104
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: -72
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: -291
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2619187604372594158, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3}
-    - target: {fileID: 3189920797946144379, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Name
-      value: "\u5168\u5C40\u6EE4\u955C"
-      objectReference: {fileID: 0}
-    - target: {fileID: 3380485461544738227, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Text
-      value: 
-      objectReference: {fileID: 0}
-    - target: {fileID: 5331629140490413834, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Alpha
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
diff --git a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
index 5348750e..d67229c2 100644
--- a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
+++ b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity
@@ -201,6 +201,22 @@ PrefabInstance:
   m_Modification:
     m_TransformParent: {fileID: 1599240741}
     m_Modifications:
+    - target: {fileID: 16705587872320209, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 16705587872320209, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 16705587872320209, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 16705587872320209, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 22557839672426087, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.x
       value: 0
@@ -257,6 +273,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 59992356008123837, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 59992356008123837, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 59992356008123837, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 59992356008123837, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 59992356008123837, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 59992356008123837, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 70078119185949114, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -957,6 +997,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 563304444218541648, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 563304444218541648, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 563304444218541648, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 563304444218541648, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 563304444218541648, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 570284408598352051, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -1833,6 +1893,46 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1250452737790090848, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1250452737790090848, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1250452737790090848, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1250452737790090848, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1275920837481466124, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1275920837481466124, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1275920837481466124, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1275920837481466124, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1275920837481466124, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1275920837481466124, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1284551479862597739, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -2021,6 +2121,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1317886493794226921, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1317886493794226921, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1317886493794226921, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1317886493794226921, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1317886493794226921, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1330807133074458952, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -2205,6 +2325,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1437443619456435465, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1437443619456435465, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1437443619456435465, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1437443619456435465, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1437443619456435465, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1448576828432061991, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -2489,6 +2629,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1639091783724093882, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 1639091784002085428, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_Pivot.x
       value: 0.5
@@ -2637,6 +2781,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1686091189633029692, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1686091189633029692, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1686091189633029692, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1686091189633029692, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1686091189633029692, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1686091189633029692, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1689466622691537257, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -2701,6 +2869,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1721402712212603845, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1723209460848265951, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -3141,6 +3313,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1979285466175734842, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1979285466175734842, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1979285466175734842, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1979285466175734842, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1979285466175734842, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1979285466175734842, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1985236408485974530, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -3205,6 +3401,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 2013742354687726019, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 2019265840565676013, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_SizeDelta.x
       value: 0
@@ -3245,6 +3445,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 2076413665593641821, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2076413665593641821, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2076413665593641821, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2076413665593641821, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2076413665593641821, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 2109641687598391630, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -3469,6 +3689,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 2187610795093934319, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2187610795093934319, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2187610795093934319, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2187610795093934319, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2187610795093934319, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 2211551914706567953, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -3497,6 +3737,38 @@ PrefabInstance:
       propertyPath: m_SizeDelta.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 2224144437669052161, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2224144437669052161, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2224144437669052161, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2224144437669052161, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2224144437669052161, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2224144437669052161, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2224144437669052161, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2224144437669052161, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 2235528395430652291, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -4045,6 +4317,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 2623955411788175463, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2623955411788175463, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2623955411788175463, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2623955411788175463, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2623955411788175463, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 2638022871721089187, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.x
       value: 0
@@ -4389,6 +4681,38 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 2763527618521453150, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2763527618521453150, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2763527618521453150, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2763527618521453150, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2763527618521453150, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2763527618521453150, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2763527618521453150, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2763527618521453150, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 2775601448660979235, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -4765,6 +5089,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3009265181665598849, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3009265181665598849, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3009265181665598849, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3009265181665598849, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3009265181665598849, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3015314838022528187, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -4965,6 +5309,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3226629147943224780, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3226629147943224780, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3226629147943224780, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3226629147943224780, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3226629147943224780, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3241952595522755728, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -4989,6 +5353,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3267342730560622260, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3267342730560622260, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3267342730560622260, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3267342730560622260, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3267342730560622260, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3267342730560622260, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3276997588276228787, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -5021,6 +5409,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3301837006499797837, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3322477756801618261, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -5409,6 +5801,38 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3515890118332280186, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3515890118332280186, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3515890118332280186, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3515890118332280186, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3515890118332280186, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3515890118332280186, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3515890118332280186, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3515890118332280186, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3516285320931262099, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -5765,6 +6189,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3822412645107584214, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3822412645107584214, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3822412645107584214, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3822412645107584214, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3822412645107584214, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3822454910430821663, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -5889,6 +6333,22 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3898818647369318495, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3898818647369318495, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3898818647369318495, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3898818647369318495, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3901958026928086014, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -5981,6 +6441,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3960100005450127155, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3960100005450127155, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3960100005450127155, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3960100005450127155, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3960100005450127155, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3960100005450127155, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 3960333009442133703, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -6177,6 +6661,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4081060857107269936, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4081060857107269936, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4081060857107269936, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4081060857107269936, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4081060857107269936, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4103731365272271900, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -6349,6 +6853,22 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4182300626335535705, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4182300626335535705, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4182300626335535705, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4182300626335535705, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4183291611132249803, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -6441,6 +6961,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4243797523038274869, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4243797523038274869, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4243797523038274869, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4243797523038274869, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4243797523038274869, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4243797523038274869, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4269336691263603641, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.x
       value: 0
@@ -6557,6 +7101,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4338716184863382021, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4338716184863382021, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4338716184863382021, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4338716184863382021, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4338716184863382021, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4338716184863382021, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4346370151784287074, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -6645,6 +7213,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4374018627887206396, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4377238811433245710, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -7197,6 +7769,38 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4663124316874729550, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4663124316874729550, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4663124316874729550, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4663124316874729550, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4663124316874729550, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4663124316874729550, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4663124316874729550, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4663124316874729550, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4702283013564418380, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_SizeDelta.x
       value: 0
@@ -7477,6 +8081,38 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4917662378564699427, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4917662378564699427, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4917662378564699427, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4917662378564699427, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4917662378564699427, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4917662378564699427, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4917662378564699427, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4917662378564699427, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4918752296636104407, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -9025,6 +9661,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5938061567100155741, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5938061567100155741, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5938061567100155741, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5938061567100155741, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5938061567100155741, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5938061567100155741, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5963686774509260028, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -9061,6 +9721,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5975623789714268836, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5978281696706004052, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -9137,6 +9801,46 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6012588565069421760, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6012588565069421760, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6012588565069421760, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6012588565069421760, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6025669446733351852, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6025669446733351852, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6025669446733351852, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6025669446733351852, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6025669446733351852, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6025669446733351852, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6040094897519059039, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -9301,6 +10005,30 @@ PrefabInstance:
       propertyPath: m_SizeDelta.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6128200928289889081, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6128200928289889081, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6128200928289889081, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6128200928289889081, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6128200928289889081, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6128200928289889081, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6138138017689748396, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.x
       value: 0
@@ -9381,6 +10109,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6164913194325085888, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6192433528046103563, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -9501,6 +10233,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6268126482485421160, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6268126482485421160, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6268126482485421160, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6268126482485421160, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6268126482485421160, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6278208978256974731, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -9893,6 +10645,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6581444491855208846, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6581444491855208846, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6581444491855208846, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6581444491855208846, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6581444491855208846, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6587420354508735214, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -9957,6 +10729,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6644631526332714474, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6644631526332714474, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6644631526332714474, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6644631526332714474, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6644631526332714474, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6663595179009877079, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.x
       value: 0
@@ -10045,6 +10837,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6704953183364034520, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6704953183364034520, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6704953183364034520, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6704953183364034520, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6704953183364034520, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6704953183364034520, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6757017606895647100, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -10065,6 +10881,22 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6765176827837626548, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6765176827837626548, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6765176827837626548, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6765176827837626548, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 6767883715159888336, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -10925,6 +11757,38 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 7413443247915580134, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7413443247915580134, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7413443247915580134, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7413443247915580134, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7413443247915580134, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7413443247915580134, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7413443247915580134, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7413443247915580134, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 7435296963553001772, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -11885,6 +12749,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8073721153899407656, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 8074185567580432597, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -11965,6 +12833,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8110432320421805265, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8110432320421805265, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8110432320421805265, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8110432320421805265, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8110432320421805265, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8110432320421805265, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 8149209937775472784, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -12585,6 +13477,46 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8583985538668957302, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8583985538668957302, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8583985538668957302, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8583985538668957302, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8583985538668957302, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8586457550383281078, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8586457550383281078, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8586457550383281078, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8586457550383281078, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8586457550383281078, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 8605729622384354693, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -12681,6 +13613,22 @@ PrefabInstance:
       propertyPath: m_SizeDelta.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8675913122798739292, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8675913122798739292, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8675913122798739292, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8675913122798739292, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 8678959584528092089, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -12701,6 +13649,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8685598815332272176, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8685598815332272176, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8685598815332272176, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8685598815332272176, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8685598815332272176, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8685598815332272176, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 8732624345436519942, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -12741,6 +13713,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8769577564680940034, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8769577564680940034, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8769577564680940034, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8769577564680940034, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8769577564680940034, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 8772214164350059366, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -13137,6 +14129,30 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 9087619955845257381, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9087619955845257381, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9087619955845257381, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9087619955845257381, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9087619955845257381, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9087619955845257381, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 9101904669212078934, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -13161,6 +14177,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 9122080172689182044, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 9122969905209546765, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_SizeDelta.x
       value: 0
@@ -13209,6 +14229,22 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 9152595144099689272, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9152595144099689272, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9152595144099689272, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9152595144099689272, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 9161825386903430510, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
       propertyPath: m_SizeDelta.x
       value: 0
@@ -13329,13 +14365,155 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 9217452079872238676, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9217452079872238676, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9217452079872238676, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9217452079872238676, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9217452079872238676, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9217452079872238676, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+--- !u!225 &730698712 stripped
+CanvasGroup:
+  m_CorrespondingSourceObject: {fileID: 3025550092845034426, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
+  m_PrefabInstance: {fileID: 730698711}
+  m_PrefabAsset: {fileID: 0}
 --- !u!224 &939125854 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
   m_PrefabInstance: {fileID: 3531919738450164441}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &1124446956
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1124446957}
+  - component: {fileID: 1124446960}
+  - component: {fileID: 1124446959}
+  - component: {fileID: 1124446958}
+  - component: {fileID: 1124446961}
+  m_Layer: 5
+  m_Name: FilterPreview
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &1124446957
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1124446956}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_Children:
+  - {fileID: 1471857115}
+  m_Father: {fileID: 1335662459}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0}
+--- !u!114 &1124446958
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1124446956}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!114 &1124446959
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1124446956}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 1
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 1920, y: 1080}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 0
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+  m_PresetInfoIsWorld: 0
+--- !u!223 &1124446960
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1124446956}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 1
+  m_Camera: {fileID: 1475480931}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 1
+  m_SortingLayerID: 0
+  m_SortingOrder: 1
+  m_TargetDisplay: 0
+--- !u!225 &1124446961
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1124446956}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
 --- !u!224 &1318590597 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 1963501579241001456, guid: 334eee9f85f308347844f8f5e99167c3, type: 3}
@@ -13374,6 +14552,7 @@ Transform:
   - {fileID: 74796459}
   - {fileID: 1427887270}
   - {fileID: 1599240741}
+  - {fileID: 1124446957}
   m_Father: {fileID: 0}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -13390,6 +14569,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_filterVolume: {fileID: 1475480930}
+  m_filterPreview: {fileID: 1124446961}
+  m_xmbBg: {fileID: 730698712}
 --- !u!1 &1427887268
 GameObject:
   m_ObjectHideFlags: 0
@@ -13433,6 +14614,95 @@ Transform:
   m_Father: {fileID: 1335662459}
   m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1471857114
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1471857115}
+  - component: {fileID: 1471857117}
+  - component: {fileID: 1471857116}
+  - component: {fileID: 1471857118}
+  m_Layer: 5
+  m_Name: Image
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1471857115
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1471857114}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1124446957}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1471857116
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1471857114}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 2100000, guid: 32887f72045b00348847a9ba59ce050b, type: 2}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1471857117
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1471857114}
+  m_CullTransparentMesh: 1
+--- !u!114 &1471857118
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1471857114}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 34f3a870b3a425c4daead53193dcd9c2, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  imgUI: {fileID: 1471857116}
 --- !u!1 &1475480928
 GameObject:
   m_ObjectHideFlags: 0
@@ -13460,7 +14730,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1475480928}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: -13.45, y: 0, z: 6.23}
+  m_LocalPosition: {x: 0.98, y: 20.14, z: 6.23}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children: []
   m_Father: {fileID: 1335662459}
diff --git a/AxibugEmuOnline.Client/Assets/Script/App.cs b/AxibugEmuOnline.Client/Assets/Script/App.cs
index b21c61cc..6fe6ab85 100644
--- a/AxibugEmuOnline.Client/Assets/Script/App.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/App.cs
@@ -39,7 +39,7 @@ namespace AxibugEmuOnline.Client.ClientCore
 #else
         public static string PersistentDataPath => Application.persistentDataPath;
 #endif
-        public static void Init(PostProcessVolume filterVolume)
+        public static void Init(Initer initer)
         {
             settings = new AppSettings();
 
@@ -55,7 +55,7 @@ namespace AxibugEmuOnline.Client.ClientCore
             nesRomLib = new RomLib(EnumPlatform.NES);
             CacheMgr = new CacheManager();
             roomMgr = new AppRoom();
-            filter = new FilterManager(filterVolume);
+            filter = new FilterManager(initer.m_filterVolume, initer.m_filterPreview,initer.m_xmbBg);
             var go = new GameObject("[AppAxibugEmuOnline]");
             GameObject.DontDestroyOnLoad(go);
             tickLoop = go.AddComponent<TickLoop>();
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs
index 4346e01b..a69ba620 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs
@@ -13,6 +13,8 @@ namespace AxibugEmuOnline.Client
 
         public IReadOnlyCollection<EditableParamerter> EditableParam => m_editableParamList.AsReadOnly();
 
+        public abstract string Name { get; }
+
         public FilterEffect()
         {
             GetEditableFilterParamters();
diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
index 6ecb2a16..10416ae6 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FixingPixelArtGrille.cs
@@ -8,6 +8,8 @@ using UnityEngine.Rendering.PostProcessing;
 [PostProcess(typeof(FixingPixelArtGrilleRenderer), PostProcessEvent.BeforeStack, "Filter/FixingPixelArtGrille")]
 public sealed class FixingPixelArtGrille : FilterEffect
 {
+    public override string Name => nameof(FixingPixelArtGrille);
+
     public ParameterOverride<EnumMaskStyle> MaskStyle = new ParameterOverride<EnumMaskStyle> { value = EnumMaskStyle.ApertureGrille };
 
     [Tooltip("Emulated input resolution\nOptimize for resize")]
diff --git a/AxibugEmuOnline.Client/Assets/Script/Initer.cs b/AxibugEmuOnline.Client/Assets/Script/Initer.cs
index 1445779a..163bf66c 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Initer.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Initer.cs
@@ -6,12 +6,13 @@ namespace AxibugEmuOnline.Client
 {
     public class Initer : MonoBehaviour
     {
-        [SerializeField]
-        PostProcessVolume m_filterVolume;
+        public PostProcessVolume m_filterVolume;
+        public CanvasGroup m_filterPreview;
+        public CanvasGroup m_xmbBg;
 
         private void Awake()
         {
-            App.Init(m_filterVolume);
+            App.Init(this);
         }
     }
 }
diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs
index aa0876d6..a85a6f54 100644
--- a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs
@@ -1,6 +1,8 @@
-using System.Collections;
+using DG.Tweening;
+using System;
 using System.Collections.Generic;
 using System.Linq;
+using UnityEngine;
 using UnityEngine.Rendering.PostProcessing;
 using static AxibugEmuOnline.Client.FilterEffect;
 
@@ -10,27 +12,42 @@ namespace AxibugEmuOnline.Client
     {
         private PostProcessProfile m_filterPorfile;
         private List<Filter> m_filters;
-
+        private Dictionary<EnumPlatform, Filter> m_filterPlatforms = new Dictionary<EnumPlatform, Filter>();
+        private AlphaWraper m_previewFilterWraper;
         /// <summary>
         /// 滤镜列表
         /// </summary>
         public IReadOnlyList<Filter> Filters => m_filters;
 
-        public FilterManager(PostProcessVolume filterVolume)
+        public FilterManager(PostProcessVolume filterVolume, CanvasGroup filterPreview, CanvasGroup mainBg)
         {
             m_filterPorfile = filterVolume.profile;
-            m_filters = m_filterPorfile.settings.Where(setting=>setting is FilterEffect).Select(setting => new Filter(setting as FilterEffect)).ToList();
+            m_filters = m_filterPorfile.settings.Where(setting => setting is FilterEffect).Select(setting => new Filter(setting as FilterEffect)).ToList();
 
+            m_previewFilterWraper = new AlphaWraper(mainBg, filterPreview, false);
+            ShutDownFilterPreview();
             ShutDownFilter();
         }
-        
+
+        /// <summary> 关闭滤镜预览 </summary>
+        public void ShutDownFilterPreview()
+        {
+            m_previewFilterWraper.On = false;
+        }
+
+        /// <summary> 开启滤镜预览 </summary>
+        public void EnableFilterPreview()
+        {
+            m_previewFilterWraper.On = true;
+        }
+
         /// <summary>
         /// 打开滤镜
         /// </summary>
         /// <param name="filter"></param>
         public void EnableFilter(Filter filter)
         {
-            foreach(var selfFiler in Filters)
+            foreach (var selfFiler in Filters)
             {
                 if (selfFiler != filter) selfFiler.m_setting.enabled.Override(false);
                 else selfFiler.m_setting.enabled.Override(true);
@@ -47,10 +64,9 @@ namespace AxibugEmuOnline.Client
                 setting.enabled.Override(false);
         }
 
-        public struct Filter
+        public class Filter
         {
-            public bool Empty => m_setting == null;
-            public readonly string Name => m_setting.name;
+            public string Name => m_setting.Name;
 
             internal FilterEffect m_setting;
 
@@ -60,29 +76,6 @@ namespace AxibugEmuOnline.Client
             }
 
             internal IReadOnlyCollection<EditableParamerter> Paramerters => m_setting.EditableParam;
-
-            public override readonly int GetHashCode()
-            {
-                return m_setting.GetHashCode();
-            }
-
-            public override readonly bool Equals(object obj)
-            {
-                if(obj == null) return false;
-                if (!(obj is Filter)) return false;
-
-                return ((Filter)obj).GetHashCode() == GetHashCode();
-            }
-
-            public static bool operator ==(Filter left, Filter right)
-            {
-                return left.GetHashCode() == right.GetHashCode();
-            }
-
-            public static bool operator !=(Filter left, Filter right)
-            {
-                return !(left == right);
-            }
         }
     }
 }
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/AlphaWraper.cs b/AxibugEmuOnline.Client/Assets/Script/UI/AlphaWraper.cs
new file mode 100644
index 00000000..8a1d98ba
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/AlphaWraper.cs
@@ -0,0 +1,93 @@
+using DG.Tweening;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Options;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace AxibugEmuOnline.Client
+{
+    public class AlphaWraper
+    {
+        private bool m_on;
+        private CanvasGroup m_offUI;
+        private CanvasGroup m_onUI;
+        private TweenerCore<float, float, FloatOptions> m_onTween;
+        private TweenerCore<float, float, FloatOptions> m_offTween;
+
+        public bool On
+        {
+            get => m_on;
+            set
+            {
+                if (m_on == value) return;
+
+                m_on = value;
+
+                if (m_onTween != null)
+                {
+                    m_onTween.Kill();
+                    m_onTween = null;
+                }
+                if (m_offTween != null)
+                {
+                    m_offTween.Kill();
+                    m_offTween = null;
+                }
+                m_onUI.gameObject.SetActiveEx(true);
+                m_offUI.gameObject.SetActiveEx(true);
+
+                if (On)
+                {
+                    float progress = 0f;
+                    m_onTween = DOTween.To(() => progress, (x) =>
+                    {
+                        progress = x;
+                        m_onUI.alpha = progress;
+                        m_offUI.alpha = 1 - progress;
+                    }, 1f, 0.3f);
+                    m_onTween.onComplete = () =>
+                    {
+                        m_offUI.gameObject.SetActiveEx(false);
+                    };
+                }
+                else
+                {
+                    float progress = 0f;
+                    m_offTween = DOTween.To(() => progress, (x) =>
+                    {
+                        progress = x;
+                        m_onUI.alpha = 1 - progress;
+                        m_offUI.alpha = progress;
+                    }, 1f, 0.3f);
+                    m_offTween.onComplete = () =>
+                    {
+                        m_onUI.gameObject.SetActiveEx(false);
+                    };
+                }
+            }
+        }
+
+        public AlphaWraper(CanvasGroup offUI, CanvasGroup onUI, bool defaultOn)
+        {
+            m_offUI = offUI;
+            m_onUI = onUI;
+
+            m_on = defaultOn;
+            if (On)
+            {
+                onUI.alpha = 1;
+                onUI.gameObject.SetActiveEx(true);
+                offUI.alpha = 0;
+                offUI.gameObject.SetActiveEx(false);
+            }
+            else
+            {
+                onUI.alpha = 0;
+                onUI.gameObject.SetActiveEx(false);
+                offUI.alpha = 1;
+                offUI.gameObject.SetActiveEx(true);
+            }
+        }
+    }
+}
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/AlphaWraper.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/AlphaWraper.cs.meta
new file mode 100644
index 00000000..707c7326
--- /dev/null
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/AlphaWraper.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 02337cc8c99c47341aa29b3e296b7b13
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/AutoRaycastCanvasGroup.cs b/AxibugEmuOnline.Client/Assets/Script/UI/AutoRaycastCanvasGroup.cs
index fbbd9a43..33e31cc2 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/AutoRaycastCanvasGroup.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/AutoRaycastCanvasGroup.cs
@@ -1,5 +1,3 @@
-using System.Collections;
-using System.Collections.Generic;
 using UnityEngine;
 
 namespace AxibugEmuOnline.Client
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs
index fb4f1c10..2f0a050e 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/GlobalFilterListMenuItem.cs
@@ -7,10 +7,24 @@ namespace AxibugEmuOnline.Client
 {
     public class GlobalFilterListMenuItem : VirtualSubMenuItem
     {
+        public override bool OnEnterItem()
+        {
+            App.filter.EnableFilterPreview();
+
+            return base.OnEnterItem();
+        }
+
+        public override bool OnExitItem()
+        {
+            App.filter.ShutDownFilterPreview();
+            App.filter.ShutDownFilter();
+
+            return base.OnExitItem();
+        }
+
         protected override void GetVirtualListDatas(Action<object> datas)
         {
             List<object> list = new List<object>();
-            list.Add(new FilterManager.Filter());
             list.AddRange(App.filter.Filters.Select(f => (object)f));
             datas.Invoke(list);
         }
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs
index 96be8a53..abb9e101 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs
@@ -1,10 +1,5 @@
 using AxibugEmuOnline.Client.ClientCore;
 using AxibugEmuOnline.Client.UI;
-using DG.Tweening;
-using DG.Tweening.Core;
-using DG.Tweening.Plugins.Options;
-using System.Linq;
-using UnityEngine;
 
 namespace AxibugEmuOnline.Client
 {
@@ -16,30 +11,34 @@ namespace AxibugEmuOnline.Client
         public int Index { get; set; }
         public FilterManager.Filter Datacontext { get; private set; }
 
+
         public void SetData(object data)
         {
-            Datacontext = (FilterManager.Filter)data;
+            Datacontext = data as FilterManager.Filter;
 
             UpdateView();
         }
 
-        private void Setting_OnColorChanged(XMBColor color)
-        {
-            UpdateView();
-        }
-
         private void UpdateView()
         {
+            SetBaseInfo(Datacontext.Name, $"��������:{Datacontext.Paramerters.Count}", null);
         }
 
         public void SetDependencyProperty(object data)
         {
             SetSelectState(data is ThirdMenuRoot tr && tr.SelectIndex == Index);
+
+            if (m_select)
+            {
+                App.filter.EnableFilterPreview();
+                App.filter.EnableFilter(Datacontext);
+            }
         }
 
         public void Release()
         {
         }
+
         public override bool OnEnterItem()
         {
             return false;
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/LaunchUI.cs b/AxibugEmuOnline.Client/Assets/Script/UI/LaunchUI.cs
index 9ad8905f..154df84a 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/LaunchUI.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/LaunchUI.cs
@@ -14,8 +14,7 @@ namespace AxibugEmuOnline.Client
         RectTransform MainMenuRoot;
         [SerializeField]
         MainMenuController MainMenu;
-        [SerializeField]
-        Image BG;
+        public Image BG;
 
         Vector2 m_mainLayoutPosition;
         [SerializeField]
diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/MenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/MenuItem.cs
index 093db7aa..41587a1f 100644
--- a/AxibugEmuOnline.Client/Assets/Script/UI/MenuItem.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/UI/MenuItem.cs
@@ -103,9 +103,13 @@ namespace AxibugEmuOnline.Client.UI
                     if (InfoNode != null) InfoNode.alpha = m_progress;
                     if (spline != null) spline.SetAlpha(m_progress);
                     Root.localScale = Vector3.one * Mathf.Lerp(UnSelectScale, SelectScale, m_progress);
+
+                    if (m_select) OnSelected(m_progress);
                 });
         }
 
+        protected virtual void OnSelected(float progress) { }
+
         public virtual bool OnEnterItem() => true;
 
         public virtual bool OnExitItem() => true;

From adf8267fb6e16f9a8b96dd1eb3eee0412b6557fe Mon Sep 17 00:00:00 2001
From: "ALIENJACK\\alien" <alienjack@foxmail.com>
Date: Thu, 28 Nov 2024 10:11:59 +0800
Subject: [PATCH 10/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=BB=A4=E9=95=9C?=
 =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=9B=BE=E6=A0=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Resources/UIPrefabs/LaunchUI.prefab       | 1590 ++++++++---------
 1 file changed, 795 insertions(+), 795 deletions(-)

diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
index 55e33094..08aa356d 100644
--- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
+++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab
@@ -101,7 +101,7 @@ MonoBehaviour:
       Description: 
       OverrideTemplate: {fileID: 1430691205543631730, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
       SubMenus: []
-    - Icon: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
+    - Icon: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3}
       Name: "\u6EE4\u955C"
       SubTitle: 
       Description: 
@@ -320,9 +320,9 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_Children:
-  - {fileID: 2224144437669052161}
-  - {fileID: 7413443247915580134}
-  - {fileID: 2763527618521453150}
+  - {fileID: 2097821101133927282}
+  - {fileID: 6719905869711622945}
+  - {fileID: 433493635188225987}
   m_Father: {fileID: 6855144573435021451}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -371,7 +371,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
---- !u!1001 &389259582505710044
+--- !u!1001 &479535774827535791
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
@@ -492,245 +492,147 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
---- !u!224 &2224144437669052161 stripped
+--- !u!224 &2097821101133927282 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 389259582505710044}
+  m_PrefabInstance: {fileID: 479535774827535791}
   m_PrefabAsset: {fileID: 0}
---- !u!224 &2999762217850006692 stripped
+--- !u!224 &3053442126874591447 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 389259582505710044}
+  m_PrefabInstance: {fileID: 479535774827535791}
   m_PrefabAsset: {fileID: 0}
---- !u!1001 &681647360022476971
+--- !u!1001 &2143509155008133406
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
-    m_TransformParent: {fileID: 5880895282580580675}
+    m_TransformParent: {fileID: 7102897325704768026}
     m_Modifications:
-    - target: {fileID: 734025543935719296, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Text
-      value: NES
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 144
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 104
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: -72
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: -171
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2619187604372594158, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
-    - target: {fileID: 3189920797946144379, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Name
-      value: NES
-      objectReference: {fileID: 0}
-    - target: {fileID: 3380485461544738227, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_Text
-      value: Nintendo Entertainment System / Family Computer
-      objectReference: {fileID: 0}
-    - target: {fileID: 5331629140490413834, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+    - target: {fileID: 632697230221148209, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Alpha
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+    - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Text
+      value: "\u8054\u673A"
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_RootOrder
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchorMin.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_SizeDelta.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
+    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
+    - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_Name
+      value: "\u8054\u673A"
       objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+    - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
       propertyPath: m_Sprite
       value: 
-      objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
+      objectReference: {fileID: 21300000, guid: ecce24ec6d4b5b546af85d64ba55a3a2, type: 3}
+    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalScale.x
+      value: 0.85
       objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
+    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalScale.y
+      value: 0.85
       objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
+    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+      propertyPath: m_LocalScale.z
+      value: 0.85
       objectReference: {fileID: 0}
     m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+  m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+--- !u!224 &433493635188225987 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+  m_PrefabInstance: {fileID: 2143509155008133406}
+  m_PrefabAsset: {fileID: 0}
+--- !u!224 &3564845846173557862 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
+  m_PrefabInstance: {fileID: 2143509155008133406}
+  m_PrefabAsset: {fileID: 0}
 --- !u!1001 &2899142591024425643
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -985,601 +887,12 @@ RectTransform:
   m_CorrespondingSourceObject: {fileID: 5353336693430589123, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3}
   m_PrefabInstance: {fileID: 2899142591024425643}
   m_PrefabAsset: {fileID: 0}
---- !u!1001 &3139996406220665639
+--- !u!1001 &4820341598190327646
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
-    m_TransformParent: {fileID: 2999762217850006692}
-    m_Modifications:
-    - target: {fileID: 734025543935719296, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Text
-      value: "\u6EE4\u955C"
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_RootOrder
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 144
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 104
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: -72
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: -291
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2619187604372594158, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
-    - target: {fileID: 3189920797946144379, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Name
-      value: "\u6EE4\u955C"
-      objectReference: {fileID: 0}
-    - target: {fileID: 3380485461544738227, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Text
-      value: 
-      objectReference: {fileID: 0}
-    - target: {fileID: 5331629140490413834, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Alpha
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: 0bdbd1b2830ae724dbd62e306f54d60a, type: 3}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
---- !u!1001 &3238096749920673603
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 1235941198720991739}
-    m_Modifications:
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 734025543935719296, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Text
-      value: "\u623F\u95F4\u5217\u8868"
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_RootOrder
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 144
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 104
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: -72
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: -171
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2619187604372594158, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
-    - target: {fileID: 3189920797946144379, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Name
-      value: "\u623F\u95F4\u5217\u8868"
-      objectReference: {fileID: 0}
-    - target: {fileID: 3380485461544738227, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Text
-      value: "\u5728\u7EBF\u623F\u95F4\u5217\u8868"
-      objectReference: {fileID: 0}
-    - target: {fileID: 5331629140490413834, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Alpha
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
---- !u!1001 &4458941485277256835
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 7102897325704768026}
-    m_Modifications:
-    - target: {fileID: 632697230221148209, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Alpha
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Text
-      value: "\u8054\u673A"
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Pivot.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Pivot.y
-      value: 0.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_RootOrder
-      value: 2
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchorMax.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchorMax.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchorMin.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchorMin.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_SizeDelta.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_SizeDelta.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: -0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchoredPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_AnchoredPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Name
-      value: "\u8054\u673A"
-      objectReference: {fileID: 0}
-    - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_Sprite
-      value: 
-      objectReference: {fileID: 21300000, guid: ecce24ec6d4b5b546af85d64ba55a3a2, type: 3}
-    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalScale.x
-      value: 0.85
-      objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalScale.y
-      value: 0.85
-      objectReference: {fileID: 0}
-    - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-      propertyPath: m_LocalScale.z
-      value: 0.85
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
---- !u!224 &2763527618521453150 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 4458941485277256835}
-  m_PrefabAsset: {fileID: 0}
---- !u!224 &1235941198720991739 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 4458941485277256835}
-  m_PrefabAsset: {fileID: 0}
---- !u!1001 &5029833525011635839
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    m_TransformParent: {fileID: 2999762217850006692}
+    m_TransformParent: {fileID: 3053442126874591447}
     m_Modifications:
     - target: {fileID: 734025543935719296, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
       propertyPath: m_IsActive
@@ -1803,7 +1116,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: dd267389f23898f45b22dbc9670a17c7, type: 3}
---- !u!1001 &9032678552268534843
+--- !u!1001 &5114599178801942012
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
@@ -1924,13 +1237,700 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
---- !u!224 &7413443247915580134 stripped
+--- !u!224 &6719905869711622945 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 9032678552268534843}
+  m_PrefabInstance: {fileID: 5114599178801942012}
   m_PrefabAsset: {fileID: 0}
---- !u!224 &5880895282580580675 stripped
+--- !u!224 &7655295325745418372 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3}
-  m_PrefabInstance: {fileID: 9032678552268534843}
+  m_PrefabInstance: {fileID: 5114599178801942012}
   m_PrefabAsset: {fileID: 0}
+--- !u!1001 &5443031414569072192
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 3053442126874591447}
+    m_Modifications:
+    - target: {fileID: 734025543935719296, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 991446423622995247, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Text
+      value: "\u6EE4\u955C"
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_RootOrder
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 144
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 104
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: -72
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -291
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2619187604372594158, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3}
+    - target: {fileID: 3189920797946144379, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Name
+      value: "\u6EE4\u955C"
+      objectReference: {fileID: 0}
+    - target: {fileID: 3380485461544738227, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Text
+      value: 
+      objectReference: {fileID: 0}
+    - target: {fileID: 5331629140490413834, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Alpha
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6771349210554360888, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 9038541706626733903, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3}
+--- !u!1001 &6030617905449693000
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 7655295325745418372}
+    m_Modifications:
+    - target: {fileID: 734025543935719296, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 991446423622995247, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Text
+      value: NES
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1559746939363341302, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_RootOrder
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 144
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 104
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: -72
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -171
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2619187604372594158, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 3189920797946144379, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Name
+      value: NES
+      objectReference: {fileID: 0}
+    - target: {fileID: 3380485461544738227, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Text
+      value: Nintendo Entertainment System / Family Computer
+      objectReference: {fileID: 0}
+    - target: {fileID: 5331629140490413834, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Alpha
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6771349210554360888, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: b12ca21105df97a469be3cf97a4f5fc1, type: 3}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: b170104e466853c49b29f9b5b103364e, type: 3}
+--- !u!1001 &7357818532964008284
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 3564845846173557862}
+    m_Modifications:
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 734025543935719296, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 991446423622995247, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Text
+      value: "\u623F\u95F4\u5217\u8868"
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_RootOrder
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 144
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 104
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: -72
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -171
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2619187604372594158, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
+    - target: {fileID: 3189920797946144379, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Name
+      value: "\u623F\u95F4\u5217\u8868"
+      objectReference: {fileID: 0}
+    - target: {fileID: 3380485461544738227, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Text
+      value: "\u5728\u7EBF\u623F\u95F4\u5217\u8868"
+      objectReference: {fileID: 0}
+    - target: {fileID: 5331629140490413834, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Alpha
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6087025893861054323, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6095356919362338847, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 6771349210554360888, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_Sprite
+      value: 
+      objectReference: {fileID: 21300000, guid: e1f1b901785009046a04b7f05cbfc2c6, type: 3}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8126322204359135913, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8754483333502849411, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8789823129857705082, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 71eabba88b30a4945b153dbaa6237441, type: 3}