From ba52dd4e845cd0030a78ed009982eaa601961cc9 Mon Sep 17 00:00:00 2001 From: "ALIENJACK\\alien" Date: Thu, 9 Jan 2025 15:09:32 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dromitem=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=8D=B3=E6=97=B6=E6=98=BE=E7=A4=BA=E6=94=B6=E8=97=8F=E6=A0=87?= =?UTF-8?q?=E8=AE=B0=E7=9A=84=E9=97=AE=E9=A2=98,=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Script/AppMain/Manager/RomLib/RomLib.cs | 2 ++ .../Assets/Script/AppMain/UI/GamesUI/RomItem.cs | 1 + 2 files changed, 3 insertions(+) diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs index 8ef9f97a..3f9e4d3d 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs @@ -43,6 +43,8 @@ namespace AxibugEmuOnline.Client private void OnRomStarStateChanged(int romID, bool star) { + if (nesRomFetchList == null) return; + var targetRom = nesRomFetchList.FirstOrDefault(rom => rom.ID == romID); if (targetRom == null) return; diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomItem.cs index 480858c8..dfe04a32 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomItem.cs @@ -139,6 +139,7 @@ namespace AxibugEmuOnline.Client { DownloadingFlag.SetActiveEx(false); FileReadyFlag.SetActiveEx(false); + Star.SetActiveEx(IsStar); if (m_romfile == null) return; if (!m_romfile.InfoReady) return; -- 2.36.0.windows.1 From e5667b55a174ca19055fde83ad56df4a1b1ad4b6 Mon Sep 17 00:00:00 2001 From: "ALIENJACK\\alien" Date: Fri, 10 Jan 2025 15:49:31 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=A7=BB=E6=A4=8D=E6=9D=A5=E8=87=AA=20gith?= =?UTF-8?q?ub.com/yunoda-3DCG/Simple-CRT-Shader=20=E7=9A=84crtshader=20?= =?UTF-8?q?=E6=BB=A4=E9=95=9C=E5=8F=82=E6=95=B0=E7=8E=B0=E5=9C=A8=E6=94=AF?= =?UTF-8?q?=E6=8C=81int=E7=B1=BB=E5=9E=8B=20=E6=BB=A4=E9=95=9C=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E5=91=BD?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resources/UIPrefabs/OptionUI.prefab | 646 ++++++++++++++++++ .../AppSettings/Filter/FilterEffect.cs | 25 +- .../AppSettings/Filter/FilterManager.cs | 6 + .../AppSettings/Filter/FilterParamerter.cs | 29 +- .../Manager/AppSettings/Filter/SimpleCRT.meta | 8 + .../AppSettings/Filter/SimpleCRT/SimpleCRT.cs | 196 ++++++ .../Filter/SimpleCRT/SimpleCRT.cs.meta | 2 + .../Filter/SimpleCRT/SimpleCRT.shader | 237 +++++++ .../Filter/SimpleCRT/SimpleCRT.shader.meta | 9 + .../AppMain/UI/BgSettingsUI/UI_FilterItem.cs | 2 +- .../UI/OptionUI/OptionUI_ValueEditItem.cs | 7 + .../OptionUI_ValueEditItem_IntEdit.cs | 58 ++ .../OptionUI_ValueEditItem_IntEdit.cs.meta | 2 + 13 files changed, 1216 insertions(+), 11 deletions(-) create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT.meta create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs.meta create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.shader create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.shader.meta create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_IntEdit.cs create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_IntEdit.cs.meta diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab index 87e53efb..e9517367 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab @@ -723,6 +723,81 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: animator: {fileID: 8744505332349586225} +--- !u!1 &2011250662246569413 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2971252204166660888} + - component: {fileID: 8603130728764424453} + - component: {fileID: 5558698359590655883} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2971252204166660888 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2011250662246569413} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 623010347094537687} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8603130728764424453 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2011250662246569413} + m_CullTransparentMesh: 1 +--- !u!114 &5558698359590655883 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2011250662246569413} + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &2471254561136382013 GameObject: m_ObjectHideFlags: 0 @@ -877,6 +952,42 @@ MonoBehaviour: m_Icon: {fileID: 394891843266770919} ExpandFlag: {fileID: 1501213187178026014} ApplyFlag: {fileID: 3335801350916860509} +--- !u!1 &2660711182228429640 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5502792356073001137} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5502792356073001137 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2660711182228429640} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9033422041994042558} + m_Father: {fileID: 623010347094537687} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &3335801350916860509 GameObject: m_ObjectHideFlags: 0 @@ -1260,6 +1371,7 @@ RectTransform: m_Children: - {fileID: 2450201408575734812} - {fileID: 7216060871118576844} + - {fileID: 3461365397350504029} - {fileID: 816049057894123782} m_Father: {fileID: 4478785627166277610} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1283,6 +1395,7 @@ MonoBehaviour: m_MenuNameTxt: {fileID: 6349204039935213934} m_Icon: {fileID: 1062489471918314902} com_floatEdit: {fileID: 3979886008433050043} + com_intEdit: {fileID: 7283495606979218283} com_enumEdit: {fileID: 3614321873420207159} --- !u!114 &4314371315188452187 MonoBehaviour: @@ -1330,6 +1443,178 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &5368404913088401643 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5211094055976679099} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5211094055976679099 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5368404913088401643} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4027954690118145370} + m_Father: {fileID: 623010347094537687} + 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 &5564584920301875764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7900345916139696652} + - component: {fileID: 4039086934110648845} + m_Layer: 5 + m_Name: content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7900345916139696652 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5564584920301875764} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 623010347094537687} + - {fileID: 345486178931433765} + m_Father: {fileID: 3461365397350504029} + 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 &4039086934110648845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5564584920301875764} + 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: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &5830336849912211446 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3461365397350504029} + - component: {fileID: 9093150501524936851} + - component: {fileID: 7283495606979218283} + m_Layer: 5 + m_Name: IntEdit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3461365397350504029 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5830336849912211446} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7900345916139696652} + m_Father: {fileID: 278706555072840209} + 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.5, y: 0.5} +--- !u!114 &9093150501524936851 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5830336849912211446} + 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: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &7283495606979218283 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5830336849912211446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: abad743de1574354f99efc5054aa6b43, type: 3} + m_Name: + m_EditorClassIdentifier: + slider: {fileID: 5919193658528722431} + txt_value: {fileID: 6075532957906331759} --- !u!1 &5894141955990945432 GameObject: m_ObjectHideFlags: 0 @@ -1394,6 +1679,117 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1 &6058311224544485353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 623010347094537687} + - component: {fileID: 5919193658528722431} + - component: {fileID: 5682207136112565641} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &623010347094537687 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6058311224544485353} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2971252204166660888} + - {fileID: 5502792356073001137} + - {fileID: 5211094055976679099} + m_Father: {fileID: 7900345916139696652} + 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.5, y: 0.5} +--- !u!114 &5919193658528722431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6058311224544485353} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3790767580891084363} + m_FillRect: {fileID: 9033422041994042558} + m_HandleRect: {fileID: 4027954690118145370} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &5682207136112565641 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6058311224544485353} + 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: 5 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &6312116949113707702 GameObject: m_ObjectHideFlags: 0 @@ -1466,6 +1862,106 @@ MonoBehaviour: m_EditorClassIdentifier: slider: {fileID: 6489571631904078165} txt_value: {fileID: 6176548475786947694} +--- !u!1 &6551251729527098609 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 345486178931433765} + - component: {fileID: 7323868397581272064} + - component: {fileID: 6075532957906331759} + - component: {fileID: 6388778664118236617} + m_Layer: 5 + m_Name: value + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &345486178931433765 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6551251729527098609} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7900345916139696652} + 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.5, y: 0.5} +--- !u!222 &7323868397581272064 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6551251729527098609} + m_CullTransparentMesh: 1 +--- !u!114 &6075532957906331759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6551251729527098609} + 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: 12800000, guid: 33a3bdf8f6bd1ec4eba7c4bc58183212, type: 3} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 20 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 0 +--- !u!114 &6388778664118236617 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6551251729527098609} + 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: 50 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &6669948312920191200 GameObject: m_ObjectHideFlags: 0 @@ -1675,6 +2171,81 @@ MonoBehaviour: m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5} m_EffectDistance: {x: 1.5, y: -1.5} m_UseGraphicAlpha: 1 +--- !u!1 &7579340952198812870 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9033422041994042558} + - component: {fileID: 9210239002563918603} + - component: {fileID: 4055457614720979564} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9033422041994042558 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7579340952198812870} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5502792356073001137} + 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: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9210239002563918603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7579340952198812870} + m_CullTransparentMesh: 1 +--- !u!114 &4055457614720979564 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7579340952198812870} + 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: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &8045610840842517781 GameObject: m_ObjectHideFlags: 0 @@ -2064,6 +2635,81 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &8670820869058111882 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4027954690118145370} + - component: {fileID: 4961390550090550147} + - component: {fileID: 3790767580891084363} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4027954690118145370 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8670820869058111882} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5211094055976679099} + 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: 20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4961390550090550147 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8670820869058111882} + m_CullTransparentMesh: 1 +--- !u!114 &3790767580891084363 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8670820869058111882} + 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: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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 &8884391103430529053 GameObject: m_ObjectHideFlags: 0 diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterEffect.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterEffect.cs index edbf0ba1..c8c37020 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterEffect.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterEffect.cs @@ -1,6 +1,7 @@ using Assets.Script.AppMain.Filter; using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Reflection; using UnityEngine; @@ -53,12 +54,12 @@ namespace AxibugEmuOnline.Client var rangeAtt = param.GetCustomAttribute(); float min = 0; float max = 10; - if (rangeAtt != null) - { - min = rangeAtt.min; max = rangeAtt.max; - } + if (rangeAtt != null) { min = rangeAtt.min; max = rangeAtt.max; } + + var descrip = param.GetCustomAttribute(); + string name = descrip != null ? descrip.Description : param.Name; - var editableParam = new EditableParamerter(param.Name, paramObj, min, max); + var editableParam = new EditableParamerter(name, paramObj, min, max); m_editableParamList.Add(editableParam); } } @@ -86,15 +87,23 @@ namespace AxibugEmuOnline.Client public object MinValue { get; private set; } public object MaxValue { get; private set; } - public EditableParamerter(string name, FilterParameter paramObject, object minValue, object maxValue) + public EditableParamerter(string name, FilterParameter paramObject, float minValue, float maxValue) { m_paramObject = paramObject; Name = name; var paramType = paramObject.GetType(); - MinValue = minValue; - MaxValue = maxValue; + if (paramObject.ValueType == typeof(int)) + { + MinValue = (int)minValue; + MaxValue = (int)maxValue; + } + else if (paramObject.ValueType == typeof(float)) + { + MinValue = minValue; + MaxValue = maxValue; + } } public void ResetToDefault() => m_paramObject.Value = null; diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterManager.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterManager.cs index 869df7b4..cf69a1f0 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterManager.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterManager.cs @@ -331,6 +331,12 @@ namespace AxibugEmuOnline.Client float.TryParse(rawStr, out floatVal); return floatVal; } + else if (valueType == typeof(int)) + { + int intVal; + int.TryParse(rawStr, out intVal); + return intVal; + } else if (valueType.IsEnum) { var names = Enum.GetNames(valueType); diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterParamerter.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterParamerter.cs index b155f072..e1614a9c 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterParamerter.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterParamerter.cs @@ -13,7 +13,7 @@ namespace Assets.Script.AppMain.Filter { get => m_overrideValue ?? m_defaultValue; set => m_overrideValue = value; - } + } } public class FilterParameter : FilterParameter @@ -34,15 +34,40 @@ namespace Assets.Script.AppMain.Filter public class BoolParameter : FilterParameter { public BoolParameter(bool defaultValue) : base(defaultValue) { } + + public static implicit operator bool(BoolParameter value) + { + return value.GetValue(); + } } public class Vector2Parameter : FilterParameter { - public Vector2Parameter(Vector2 defaultValue) : base(defaultValue) { } + public Vector2Parameter(Vector2 defaultValue) : base(defaultValue) { } + + public static implicit operator Vector2(Vector2Parameter value) + { + return value.GetValue(); + } } public class FloatParameter : FilterParameter { public FloatParameter(float defaultValue) : base(defaultValue) { } + + public static implicit operator float(FloatParameter value) + { + return value.GetValue(); + } + } + + public class IntParameter : FilterParameter + { + public IntParameter(int defaultValue) : base(defaultValue) { } + + public static implicit operator int(IntParameter value) + { + return value.GetValue(); + } } } \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT.meta new file mode 100644 index 00000000..60bec35b --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 36463068bd4c2274cb302669fa552345 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs new file mode 100644 index 00000000..6a59d3de --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs @@ -0,0 +1,196 @@ +using Assets.Script.AppMain.Filter; +using AxibugEmuOnline.Client; +using System.ComponentModel; +using UnityEngine; +using Random = UnityEngine.Random; + + +public class SimpleCRT : FilterEffect +{ + public override string Name => nameof(SimpleCRT); + + protected override string ShaderName => "Filter/yunoda-3DCG/SimpleCRT"; + + [Range(0, 1000)] + [Description("White Noise Freq")] + public IntParameter whiteNoiseFrequency = new IntParameter(1); + [Range(0, 1)] + [Description("White Noise Time Left (sec)")] + public FloatParameter whiteNoiseLength = new FloatParameter(0.1f); + private float whiteNoiseTimeLeft; + + public int screenJumpFrequency = 1; + public float screenJumpLength = 0.2f; + public float screenJumpMinLevel = 0.1f; + public float screenJumpMaxLevel = 0.9f; + private float screenJumpTimeLeft; + + public float flickeringStrength = 0.002f; + public float flickeringCycle = 111f; + + public bool isSlippage = true; + public bool isSlippageNoise = true; + public float slippageStrength = 0.005f; + public float slippageInterval = 1f; + public float slippageScrollSpeed = 33f; + public float slippageSize = 11f; + + public float chromaticAberrationStrength = 0.005f; + public bool isChromaticAberration = true; + + public bool isMultipleGhost = true; + public float multipleGhostStrength = 0.01f; + + public bool isScanline = true; + public bool isMonochrome = false; + + public bool isLetterBox = false; + public bool isLetterBoxEdgeBlur = false; + public LeterBoxType letterBoxType; + public enum LeterBoxType + { + Black, + Blur + } + + public bool isFilmDirt = false; + public Texture2D filmDirtTex; + + public bool isDecalTex = false; + public Texture2D decalTex; + public Vector2 decalTexPos; + public Vector2 decalTexScale; + + public Vector2Int resolutions; + + #region Properties in shader + private int _WhiteNoiseOnOff; + private int _ScanlineOnOff; + private int _MonochormeOnOff; + private int _ScreenJumpLevel; + private int _FlickeringStrength; + private int _FlickeringCycle; + private int _SlippageStrength; + private int _SlippageSize; + private int _SlippageInterval; + private int _SlippageScrollSpeed; + private int _SlippageNoiseOnOff; + private int _SlippageOnOff; + private int _ChromaticAberrationStrength; + private int _ChromaticAberrationOnOff; + private int _MultipleGhostOnOff; + private int _MultipleGhostStrength; + private int _LetterBoxOnOff; + private int _LetterBoxType; + private int _LetterBoxEdgeBlurOnOff; + private int _DecalTex; + private int _DecalTexOnOff; + private int _DecalTexPos; + private int _DecalTexScale; + private int _FilmDirtOnOff; + private int _FilmDirtTex; + #endregion + + protected override void OnInit(Material renderMat) + { + base.OnInit(renderMat); + + _WhiteNoiseOnOff = Shader.PropertyToID("_WhiteNoiseOnOff"); + _ScanlineOnOff = Shader.PropertyToID("_ScanlineOnOff"); + _MonochormeOnOff = Shader.PropertyToID("_MonochormeOnOff"); + _ScreenJumpLevel = Shader.PropertyToID("_ScreenJumpLevel"); + _FlickeringStrength = Shader.PropertyToID("_FlickeringStrength"); + _FlickeringCycle = Shader.PropertyToID("_FlickeringCycle"); + _SlippageStrength = Shader.PropertyToID("_SlippageStrength"); + _SlippageSize = Shader.PropertyToID("_SlippageSize"); + _SlippageInterval = Shader.PropertyToID("_SlippageInterval"); + _SlippageScrollSpeed = Shader.PropertyToID("_SlippageScrollSpeed"); + _SlippageNoiseOnOff = Shader.PropertyToID("_SlippageNoiseOnOff"); + _SlippageOnOff = Shader.PropertyToID("_SlippageOnOff"); + _ChromaticAberrationStrength = Shader.PropertyToID("_ChromaticAberrationStrength"); + _ChromaticAberrationOnOff = Shader.PropertyToID("_ChromaticAberrationOnOff"); + _MultipleGhostOnOff = Shader.PropertyToID("_MultipleGhostOnOff"); + _MultipleGhostStrength = Shader.PropertyToID("_MultipleGhostStrength"); + _LetterBoxOnOff = Shader.PropertyToID("_LetterBoxOnOff"); + _LetterBoxType = Shader.PropertyToID("_LetterBoxType"); + _DecalTex = Shader.PropertyToID("_DecalTex"); + _DecalTexOnOff = Shader.PropertyToID("_DecalTexOnOff"); + _DecalTexPos = Shader.PropertyToID("_DecalTexPos"); + _DecalTexScale = Shader.PropertyToID("_DecalTexScale"); + _FilmDirtOnOff = Shader.PropertyToID("_FilmDirtOnOff"); + _FilmDirtTex = Shader.PropertyToID("_FilmDirtTex"); + } + + protected override void OnRenderer(Material renderMat, Texture src, RenderTexture result) + { + SetShaderParameter(renderMat); + + Graphics.Blit(src, result, renderMat); + } + + private void SetShaderParameter(Material material) + { + ///////White noise + whiteNoiseTimeLeft -= 0.01f; + if (whiteNoiseTimeLeft <= 0) + { + if (Random.Range(0, 1000) < whiteNoiseFrequency) + { + material.SetInteger(_WhiteNoiseOnOff, 1); + whiteNoiseTimeLeft = whiteNoiseLength; + } + else + { + material.SetInteger(_WhiteNoiseOnOff, 0); + } + } + ////// + + material.SetInteger(_LetterBoxOnOff, isLetterBox ? 0 : 1); + //material.SetInteger(_LetterBoxEdgeBlurOnOff, isLetterBoxEdgeBlur ? 0 : 1); + material.SetInteger(_LetterBoxType, (int)letterBoxType); + + material.SetInteger(_ScanlineOnOff, isScanline ? 1 : 0); + material.SetInteger(_MonochormeOnOff, isMonochrome ? 1 : 0); + material.SetFloat(_FlickeringStrength, flickeringStrength); + material.SetFloat(_FlickeringCycle, flickeringCycle); + material.SetFloat(_ChromaticAberrationStrength, chromaticAberrationStrength); + material.SetInteger(_ChromaticAberrationOnOff, isChromaticAberration ? 1 : 0); + material.SetInteger(_MultipleGhostOnOff, isMultipleGhost ? 1 : 0); + material.SetFloat(_MultipleGhostStrength, multipleGhostStrength); + material.SetInteger(_FilmDirtOnOff, isFilmDirt ? 1 : 0); + material.SetTexture(_FilmDirtTex, filmDirtTex); + + //////Slippage + material.SetInteger(_SlippageOnOff, isSlippage ? 1 : 0); + material.SetFloat(_SlippageInterval, slippageInterval); + material.SetFloat(_SlippageNoiseOnOff, isSlippageNoise ? Random.Range(0, 1f) : 1); + material.SetFloat(_SlippageScrollSpeed, slippageScrollSpeed); + material.SetFloat(_SlippageStrength, slippageStrength); + material.SetFloat(_SlippageSize, slippageSize); + ////// + + //////Screen Jump Noise + screenJumpTimeLeft -= 0.01f; + if (screenJumpTimeLeft <= 0) + { + if (Random.Range(0, 1000) < screenJumpFrequency) + { + var level = Random.Range(screenJumpMinLevel, screenJumpMaxLevel); + material.SetFloat(_ScreenJumpLevel, level); + screenJumpTimeLeft = screenJumpLength; + } + else + { + material.SetFloat(_ScreenJumpLevel, 0); + } + } + ////// + + //////Decal Texture + material.SetTexture(_DecalTex, decalTex); + material.SetInteger(_DecalTexOnOff, isDecalTex ? 1 : 0); + material.SetVector(_DecalTexPos, decalTexPos); + material.SetVector(_DecalTexScale, decalTexScale); + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs.meta new file mode 100644 index 00000000..7530d4b6 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d4ffc7492874c2241827f1d70c24a1e3 \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.shader b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.shader new file mode 100644 index 00000000..6dca2950 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.shader @@ -0,0 +1,237 @@ +Shader "Filter/yunoda-3DCG/SimpleCRT" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + _DecalTex ("Decal Texture", 2D) = "white" {} + _FilmDirtTex ("Dirt Texture", 2D) = "white" {} + } + SubShader + { + Pass + { + CGPROGRAM + #include "UnityCG.cginc" + + #pragma vertex vert + #pragma fragment frag + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float2 decaluv : TEXCOORD1; + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + float4 _MainTex_TexelSize; + + int _WhiteNoiseOnOff; + int _ScanlineOnOff; + int _MonochormeOnOff; + + int _LetterBoxOnOff; + int _LetterBoxEdgeBlur; + int _LetterBoxType; + + float _ScreenJumpLevel; + + float _FlickeringStrength; + float _FlickeringCycle; + + int _SlippageOnOff; + float _SlippageStrength; + float _SlippageInterval; + float _SlippageScrollSpeed; + float _SlippageNoiseOnOff; + float _SlippageSize; + + float _ChromaticAberrationStrength; + int _ChromaticAberrationOnOff; + + int _MultipleGhostOnOff; + float _MultipleGhostStrength; + + sampler2D _DecalTex; + float4 _DecalTex_ST; + int _DecalTexOnOff; + float2 _DecalTexPos; + float2 _DecalTexScale; + + int _FilmDirtOnOff; + sampler2D _FilmDirtTex; + float4 _FilmDirtTex_ST; + + float GetRandom(float x); + float EaseIn(float t0, float t1, float t); + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + o.decaluv = TRANSFORM_TEX(v.uv, _DecalTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + float2 uv = i.uv; + + /////Jump noise + uv.y = frac(uv.y + _ScreenJumpLevel); + ///// + + /////frickering + float flickeringNoise = GetRandom(_Time.y); + float flickeringMask = pow(abs(sin(i.uv.y * _FlickeringCycle + _Time.y)), 10); + uv.x = uv.x + (flickeringNoise * _FlickeringStrength * flickeringMask); + ///// + + /////slippage + float scrollSpeed = _Time.x * _SlippageScrollSpeed; + float slippageMask = pow(abs(sin(i.uv.y * _SlippageInterval + scrollSpeed)), _SlippageSize); + float stepMask = round(sin(i.uv.y * _SlippageInterval + scrollSpeed - 1)); + uv.x = uv.x + (_SlippageNoiseOnOff * _SlippageStrength * slippageMask * stepMask) * _SlippageOnOff; + ///// + + /////Chromatic Aberration + float red = tex2D(_MainTex, float2(uv.x - _ChromaticAberrationStrength * _ChromaticAberrationOnOff, uv.y)).r; + float green = tex2D(_MainTex, float2(uv.x, uv.y)).g; + float blue = tex2D(_MainTex, float2(uv.x + _ChromaticAberrationStrength * _ChromaticAberrationOnOff, uv.y)).b; + float4 color = float4(red, green, blue, 1); + ///// + + /////Multiple Ghost + float4 ghost1st = tex2D(_MainTex, uv - float2(1, 0) * _MultipleGhostStrength * _MultipleGhostOnOff); + float4 ghost2nd = tex2D(_MainTex, uv - float2(1, 0) * _MultipleGhostStrength * 2 * _MultipleGhostOnOff); + color = color * 0.8 + ghost1st * 0.15 + ghost2nd * 0.05; + ///// + + /////File dirt + float2 pp = -1.0 + 2.0 * uv; + float time = _Time.x; + float aaRad = 0.1; + float2 nseLookup2 = pp + time * 1000; + float3 nse2 = + tex2D(_FilmDirtTex, 0.1 * nseLookup2.xy).xyz + + tex2D(_FilmDirtTex, 0.01 * nseLookup2.xy).xyz + + tex2D(_FilmDirtTex, 0.004 * nseLookup2.xy).xyz; + float thresh = 0.6; + float mul1 = smoothstep(thresh - aaRad, thresh + aaRad, nse2.x); + float mul2 = smoothstep(thresh - aaRad, thresh + aaRad, nse2.y); + float mul3 = smoothstep(thresh - aaRad, thresh + aaRad, nse2.z); + + float seed = tex2D(_FilmDirtTex, float2(time * 0.35, time)).x; + + float result = clamp(0, 1, seed + 0.7); + + result += 0.06 * EaseIn(19.2, 19.4, time); + + float band = 0.05; + if(_FilmDirtOnOff == 1) + { + if( 0.3 < seed && 0.3 + band > seed ) + color *= mul1 * result; + else if( 0.6 < seed && 0.6 + band > seed ) + color *= mul2 * result; + else if( 0.9 < seed && 0.9 + band > seed ) + color *= mul3 * result; + } + ///// + + /////Letter box + float band_uv = fmod(_MainTex_TexelSize.z, 640) / _MainTex_TexelSize.z / 2; + if(i.uv.x < band_uv || 1 - band_uv < i.uv.x) + { + float pi = 6.28318530718; + float directions = 16.0; + float quality = 3.0; + float size = 8.0; + + float2 Radius = size * _MainTex_ST.zw; + float4 samplingColor = tex2D(_MainTex, uv); + + for(float d = 0.0; d < pi; d += pi / directions) + { + for(float i = 1.0 / quality; i <= 1.0; i += 1.0 / quality) + { + samplingColor += tex2D(_MainTex, uv + float2(cos(d), sin(d)) * 0.015 * i); + } + } + samplingColor /= quality * directions - 15.0; + + if(_LetterBoxOnOff == 1) + { + color = color; + } + else if(_LetterBoxType == 0) // LetterBox is Black + { + color = 0; + } + else if(_LetterBoxType == 1) // LetterBox is Blur + { + color = samplingColor; + } + } + ///// + + /////White noise + if(_WhiteNoiseOnOff == 1) + { + return frac(sin(dot(i.uv, float2(12.9898, 78.233)) + _Time.x) * 43758.5453); + } + ///// + + /////Decal texture + float4 decal = tex2D(_DecalTex, (i.decaluv - _DecalTexPos) * _DecalTexScale) * _DecalTexOnOff; + color = color * (1 - decal.a) + decal; + ///// + + /////Scanline + float scanline = sin((i.uv.y + _Time.x) * 800.0) * 0.04; + color -= scanline * _ScanlineOnOff; + ///// + + //////scanline noise + float noiseAlpha = 1; + if(pow(sin(uv.y + _Time.y * 2), 200) >= 0.999) + { + noiseAlpha = GetRandom(uv.y); + //color *= noiseAlpha; + } + ////// + + //////Monochorome + if(_MonochormeOnOff == 1) + { + color.xyz = 0.299f * color.r + 0.587f * color.g + 0.114f * color.b; + } + ////// + + return color; + } + + float GetRandom(float x) + { + return frac(sin(dot(x, float2(12.9898, 78.233))) * 43758.5453); + } + + float EaseIn(float t0, float t1, float t) + { + return 2.0 * smoothstep(t0, 2.0 * t1 - t0, t); + } + ENDCG + } + } +} + + + diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.shader.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.shader.meta new file mode 100644 index 00000000..d1237e56 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fdf9f1937116ab84c97a58a4cf82fbf8 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_FilterItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_FilterItem.cs index e7dd6ab2..eaa92acb 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_FilterItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_FilterItem.cs @@ -153,7 +153,7 @@ namespace AxibugEmuOnline.Client private FilterEffect.EditableParamerter m_param; private FilterPreset m_preset; - public override bool Visible => m_param.ValueType.IsEnum || m_param.ValueType == typeof(float); + public override bool Visible => true; public override string Name => m_param.Name; public Opt_ParamEditor(Filter filter, FilterEffect.EditableParamerter editParam, FilterPreset preset) diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem.cs index 1581768c..3800fbf5 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem.cs @@ -8,6 +8,8 @@ namespace AxibugEmuOnline.Client [SerializeField] OptionUI_ValueEditItem_FloatEdit com_floatEdit; [SerializeField] + OptionUI_ValueEditItem_IntEdit com_intEdit; + [SerializeField] OptionUI_ValueEditItem_EnumEdit com_enumEdit; IValueEditControl m_currentCom; @@ -15,6 +17,7 @@ namespace AxibugEmuOnline.Client protected override void OnSetData(OptionMenu menuData) { com_floatEdit.gameObject.SetActive(false); + com_intEdit.gameObject.SetActive(false); com_enumEdit.gameObject.SetActive(false); if (menuData is ValueSetMenu) @@ -24,6 +27,10 @@ namespace AxibugEmuOnline.Client { m_currentCom = com_floatEdit; } + else if(valueMenu.ValueType == typeof(int)) + { + m_currentCom = com_intEdit; + } else if (valueMenu.ValueType.IsEnum) { m_currentCom = com_enumEdit; diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_IntEdit.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_IntEdit.cs new file mode 100644 index 00000000..1d7813c3 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_IntEdit.cs @@ -0,0 +1,58 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace AxibugEmuOnline.Client +{ + public class OptionUI_ValueEditItem_IntEdit : MonoBehaviour, IValueEditControl + { + [SerializeField] + Slider slider; + [SerializeField] + Text txt_value; + + int m_step; + private ValueSetMenu m_valueMenu; + + private void Awake() + { + slider.onValueChanged.AddListener(OnSliderValueChanged); + } + + private void OnSliderValueChanged(float value) + { + int intValue = (int)value; + txt_value.text = $"{intValue}"; + + if (!m_dataSetting) m_valueMenu.OnValueChanged(intValue); + } + + bool m_dataSetting; + public void SetData(ValueSetMenu valueMenu) + { + m_dataSetting = true; + m_valueMenu = valueMenu; + slider.minValue = (int)valueMenu.Min; + slider.maxValue = (int)valueMenu.Max; + slider.value = (int)valueMenu.ValueRaw; + slider.wholeNumbers = true; + m_step = 1; + m_dataSetting = false; + } + + public void OnLeft() + { + var newValue = Mathf.Clamp(slider.value - m_step, slider.minValue, slider.maxValue); + slider.value = newValue; + } + + public void OnRight() + { + var newValue = Mathf.Clamp(slider.value + m_step, slider.minValue, slider.maxValue); + slider.value = newValue; + } + + public void OnExecute() + { + } + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_IntEdit.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_IntEdit.cs.meta new file mode 100644 index 00000000..1224e4aa --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_IntEdit.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: abad743de1574354f99efc5054aa6b43 \ No newline at end of file -- 2.36.0.windows.1 From 864b5879e11a843fd50f7a3f573fb1ad1a1837af Mon Sep 17 00:00:00 2001 From: "ALIENJACK\\alien" Date: Fri, 10 Jan 2025 17:32:08 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=AE=8C=E6=88=90SampleCRT=E6=89=80?= =?UTF-8?q?=E6=9C=89=E5=8F=82=E6=95=B0=E7=9A=84=E9=85=8D=E7=BD=AE=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=20=E6=96=B0=E5=A2=9EBoolean=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=BB=A4=E9=95=9C=E5=8F=82=E6=95=B0=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resources/UIPrefabs/LaunchUI.prefab | 1254 ++++++++--------- .../Resources/UIPrefabs/OptionUI.prefab | 236 ++++ .../AppSettings/Filter/FilterManager.cs | 6 + .../AppSettings/Filter/FilterParamerter.cs | 30 + .../AppSettings/Filter/SimpleCRT/SimpleCRT.cs | 69 +- .../UI/OptionUI/OptionUI_ValueEditItem.cs | 9 +- .../OptionUI_ValueEditItem_BoolEdit.cs | 39 + .../OptionUI_ValueEditItem_BoolEdit.cs.meta | 2 + 8 files changed, 971 insertions(+), 674 deletions(-) create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_BoolEdit.cs create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_BoolEdit.cs.meta diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab index 50821624..7a4b8cdf 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab @@ -107,7 +107,7 @@ MonoBehaviour: Description: OverrideTemplate: {fileID: 6299221187810587914, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3} SubMenus: [] - - Icon: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3} + - Icon: {fileID: 8228730565043098574, guid: d518d00d4940e854bbe45d9ef891401a, type: 3} Name: "\u753B\u9762\u6BD4\u4F8B" SubTitle: Description: @@ -452,9 +452,9 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1916588507637046755} - - {fileID: 6460010277324914646} - - {fileID: 3058488711806216331} + - {fileID: 3669871757666250546} + - {fileID: 3678134670041827378} + - {fileID: 885538609892901687} m_Father: {fileID: 6855144573435021451} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -551,424 +551,13 @@ CanvasGroup: m_Interactable: 1 m_BlocksRaycasts: 1 m_IgnoreParentGroups: 0 ---- !u!1001 &81703635293737790 +--- !u!1001 &1584318430553463231 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - 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_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_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - insertIndex: -1 - addedObject: {fileID: 8908145107926033739} - - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - insertIndex: -1 - addedObject: {fileID: 6896717217113787335} - - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - insertIndex: -1 - addedObject: {fileID: 7873173972809266028} - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} ---- !u!224 &1916588507637046755 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - m_PrefabInstance: {fileID: 81703635293737790} - m_PrefabAsset: {fileID: 0} ---- !u!224 &3307299456251563590 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - m_PrefabInstance: {fileID: 81703635293737790} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &3587888227065243222 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - 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_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_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - insertIndex: -1 - addedObject: {fileID: 7964242884360883841} - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} ---- !u!224 &2093359112723807022 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - m_PrefabInstance: {fileID: 3587888227065243222} - m_PrefabAsset: {fileID: 0} ---- !u!224 &3058488711806216331 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - m_PrefabInstance: {fileID: 3587888227065243222} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &4764178440449765643 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - 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: Game - 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_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: Game - objectReference: {fileID: 0} - - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, 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: 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_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - insertIndex: -1 - addedObject: {fileID: 7397854261345223634} - - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - insertIndex: -1 - addedObject: {fileID: 8292633707166609363} - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} ---- !u!224 &6460010277324914646 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - m_PrefabInstance: {fileID: 4764178440449765643} - m_PrefabAsset: {fileID: 0} ---- !u!224 &7987808335387176051 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} - m_PrefabInstance: {fileID: 4764178440449765643} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &4903678746850264346 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 3307299456251563590} + m_TransformParent: {fileID: 401652325809503383} m_Modifications: - target: {fileID: 734025543935719296, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3} propertyPath: m_IsActive @@ -1191,18 +780,152 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3} ---- !u!224 &6896717217113787335 stripped +--- !u!224 &1029058383689914210 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: 3ecc1c637c161184099b69c3d7a0f354, type: 3} - m_PrefabInstance: {fileID: 4903678746850264346} + m_PrefabInstance: {fileID: 1584318430553463231} m_PrefabAsset: {fileID: 0} ---- !u!1001 &6925204534056151958 +--- !u!1001 &1725233518776716778 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 3307299456251563590} + 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_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_RemovedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + insertIndex: -1 + addedObject: {fileID: 4948236486807009510} + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} +--- !u!224 &885538609892901687 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + m_PrefabInstance: {fileID: 1725233518776716778} + m_PrefabAsset: {fileID: 0} +--- !u!224 &4266849409854443666 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + m_PrefabInstance: {fileID: 1725233518776716778} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2169617127143425986 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 401652325809503383} m_Modifications: - target: {fileID: 734025543935719296, guid: dd267389f23898f45b22dbc9670a17c7, type: 3} propertyPath: m_IsActive @@ -1425,252 +1148,295 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: dd267389f23898f45b22dbc9670a17c7, type: 3} ---- !u!224 &8908145107926033739 stripped +--- !u!224 &407388136691927327 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: dd267389f23898f45b22dbc9670a17c7, type: 3} - m_PrefabInstance: {fileID: 6925204534056151958} + m_PrefabInstance: {fileID: 2169617127143425986} m_PrefabAsset: {fileID: 0} ---- !u!1001 &7542975743905456398 +--- !u!1001 &2931854269036594927 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 7987808335387176051} + m_TransformParent: {fileID: 7102897325704768026} m_Modifications: - - target: {fileID: 734025543935719296, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 991446423622995247, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_Text - value: "\u6536\u85CF" - objectReference: {fileID: 0} - - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_Pivot.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchorMax.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchorMax.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchorMin.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchorMin.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_SizeDelta.x - value: 144 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_SizeDelta.y - value: 104 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchoredPosition.x - value: -72 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchoredPosition.y - value: -363 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2619187604372594158, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_Sprite - value: - objectReference: {fileID: 7637870703528583553, guid: a8e14774cb9b81d4799116466bc09437, type: 3} - - target: {fileID: 3189920797946144379, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_Name - value: "\u6536\u85CF" - objectReference: {fileID: 0} - - target: {fileID: 3380485461544738227, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_Text - value: "\u5C55\u793A\u6240\u6709\u5E73\u53F0\u6536\u85CF\u7684rom" - objectReference: {fileID: 0} - - target: {fileID: 5331629140490413834, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + - target: {fileID: 632697230221148209, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} propertyPath: m_Alpha value: 0 objectReference: {fileID: 0} - - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + - target: {fileID: 991446423622995247, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + propertyPath: m_Text + value: Game + 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_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: 2ab970ec87696e44a99fdd18821215fc, 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: 2ab970ec87696e44a99fdd18821215fc, type: 3} + - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, 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: 2ab970ec87696e44a99fdd18821215fc, type: 3} + - target: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, 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: 2ab970ec87696e44a99fdd18821215fc, 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: 2ab970ec87696e44a99fdd18821215fc, 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: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 + - target: {fileID: 3189920797946144379, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + propertyPath: m_Name + value: Game objectReference: {fileID: 0} - - target: {fileID: 6771349210554360888, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + - target: {fileID: 6771349210554360888, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} propertyPath: m_Sprite value: - objectReference: {fileID: 7637870703528583553, guid: a8e14774cb9b81d4799116466bc09437, type: 3} - - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchorMax.y - value: 0 + objectReference: {fileID: 21300000, guid: 1b52cdd34b39a8c4fa0dad6f2007e2f3, type: 3} + - target: {fileID: 8754483333502849411, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + propertyPath: m_LocalScale.x + value: 0.85 objectReference: {fileID: 0} - - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, 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: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8754483333502849411, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, 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_RemovedGameObjects: [] - m_AddedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + insertIndex: -1 + addedObject: {fileID: 8415874216589457928} + - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + insertIndex: -1 + addedObject: {fileID: 7706441286827416620} m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} ---- !u!224 &8292633707166609363 stripped + m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} +--- !u!224 &321919121813838743 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} - m_PrefabInstance: {fileID: 7542975743905456398} + m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + m_PrefabInstance: {fileID: 2931854269036594927} m_PrefabAsset: {fileID: 0} ---- !u!1001 &8448188468684947548 +--- !u!224 &3678134670041827378 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + m_PrefabInstance: {fileID: 2931854269036594927} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2978377959354180079 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 2093359112723807022} + 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_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_RemovedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + insertIndex: -1 + addedObject: {fileID: 407388136691927327} + - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + insertIndex: -1 + addedObject: {fileID: 1029058383689914210} + - targetCorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + insertIndex: -1 + addedObject: {fileID: 9120671577046735909} + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} +--- !u!224 &401652325809503383 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3226730524206505336, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + m_PrefabInstance: {fileID: 2978377959354180079} + m_PrefabAsset: {fileID: 0} +--- !u!224 &3669871757666250546 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: ece591129eb9bcc48bd83ec153c98018, type: 3} + m_PrefabInstance: {fileID: 2978377959354180079} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6850248588422149691 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 4266849409854443666} m_Modifications: - target: {fileID: 15566658635405967, guid: 71eabba88b30a4945b153dbaa6237441, type: 3} propertyPath: m_AnchorMax.y @@ -1893,18 +1659,18 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 71eabba88b30a4945b153dbaa6237441, type: 3} ---- !u!224 &7964242884360883841 stripped +--- !u!224 &4948236486807009510 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: 71eabba88b30a4945b153dbaa6237441, type: 3} - m_PrefabInstance: {fileID: 8448188468684947548} + m_PrefabInstance: {fileID: 6850248588422149691} m_PrefabAsset: {fileID: 0} ---- !u!1001 &8572725111514365361 +--- !u!1001 &7289199605824656120 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 3307299456251563590} + m_TransformParent: {fileID: 401652325809503383} m_Modifications: - target: {fileID: 734025543935719296, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} propertyPath: m_IsActive @@ -1997,7 +1763,7 @@ PrefabInstance: - target: {fileID: 2619187604372594158, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} propertyPath: m_Sprite value: - objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3} + objectReference: {fileID: 8228730565043098574, guid: d518d00d4940e854bbe45d9ef891401a, type: 3} - target: {fileID: 3189920797946144379, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} propertyPath: m_Name value: "\u753B\u9762\u6BD4\u4F8B" @@ -2053,7 +1819,7 @@ PrefabInstance: - target: {fileID: 6771349210554360888, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} propertyPath: m_Sprite value: - objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3} + objectReference: {fileID: 8228730565043098574, guid: d518d00d4940e854bbe45d9ef891401a, type: 3} - target: {fileID: 8126322204359135913, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -2127,18 +1893,18 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} ---- !u!224 &7873173972809266028 stripped +--- !u!224 &9120671577046735909 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} - m_PrefabInstance: {fileID: 8572725111514365361} + m_PrefabInstance: {fileID: 7289199605824656120} m_PrefabAsset: {fileID: 0} ---- !u!1001 &9012027568782593295 +--- !u!1001 &8030027059846264021 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 7987808335387176051} + m_TransformParent: {fileID: 321919121813838743} m_Modifications: - target: {fileID: 734025543935719296, guid: b170104e466853c49b29f9b5b103364e, type: 3} propertyPath: m_IsActive @@ -2361,8 +2127,242 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b170104e466853c49b29f9b5b103364e, type: 3} ---- !u!224 &7397854261345223634 stripped +--- !u!224 &8415874216589457928 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: b170104e466853c49b29f9b5b103364e, type: 3} - m_PrefabInstance: {fileID: 9012027568782593295} + m_PrefabInstance: {fileID: 8030027059846264021} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &8163220276214452977 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 321919121813838743} + m_Modifications: + - target: {fileID: 734025543935719296, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 991446423622995247, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_Text + value: "\u6536\u85CF" + objectReference: {fileID: 0} + - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1559746939363341302, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.x + value: 144 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.y + value: 104 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.x + value: -72 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.y + value: -363 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2619187604372594158, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 7637870703528583553, guid: a8e14774cb9b81d4799116466bc09437, type: 3} + - target: {fileID: 3189920797946144379, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_Name + value: "\u6536\u85CF" + objectReference: {fileID: 0} + - target: {fileID: 3380485461544738227, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_Text + value: "\u5C55\u793A\u6240\u6709\u5E73\u53F0\u6536\u85CF\u7684rom" + objectReference: {fileID: 0} + - target: {fileID: 5331629140490413834, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_Alpha + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6087025893861054323, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6095356919362338847, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6771349210554360888, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 7637870703528583553, guid: a8e14774cb9b81d4799116466bc09437, type: 3} + - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8126322204359135913, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8754483333502849411, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8789823129857705082, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} +--- !u!224 &7706441286827416620 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1998281097548910301, guid: 2ab970ec87696e44a99fdd18821215fc, type: 3} + m_PrefabInstance: {fileID: 8163220276214452977} m_PrefabAsset: {fileID: 0} diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab index e9517367..325f6f89 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab @@ -520,6 +520,77 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: gradient: {fileID: 46877084639177849} +--- !u!1 &1280900818828460255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1718494758036642021} + - component: {fileID: 406189280625441644} + - component: {fileID: 6728379839034828402} + m_Layer: 5 + m_Name: BoolEdit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1718494758036642021 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1280900818828460255} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7754613193470953066} + m_Father: {fileID: 278706555072840209} + 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.5, y: 0.5} +--- !u!114 &406189280625441644 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1280900818828460255} + 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: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &6728379839034828402 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1280900818828460255} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c864ef7d3920dfc4cb69a86ef3af426b, type: 3} + m_Name: + m_EditorClassIdentifier: + txt_value: {fileID: 7822831767140937850} --- !u!1 &1501213187178026014 GameObject: m_ObjectHideFlags: 0 @@ -1372,6 +1443,7 @@ RectTransform: - {fileID: 2450201408575734812} - {fileID: 7216060871118576844} - {fileID: 3461365397350504029} + - {fileID: 1718494758036642021} - {fileID: 816049057894123782} m_Father: {fileID: 4478785627166277610} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1396,6 +1468,7 @@ MonoBehaviour: m_Icon: {fileID: 1062489471918314902} com_floatEdit: {fileID: 3979886008433050043} com_intEdit: {fileID: 7283495606979218283} + com_boolEdit: {fileID: 6728379839034828402} com_enumEdit: {fileID: 3614321873420207159} --- !u!114 &4314371315188452187 MonoBehaviour: @@ -1679,6 +1752,106 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1 &6033457221832404715 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8543458054403131507} + - component: {fileID: 6646371810488858664} + - component: {fileID: 7822831767140937850} + - component: {fileID: 3722671482862039384} + m_Layer: 5 + m_Name: value + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8543458054403131507 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033457221832404715} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7754613193470953066} + 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.5, y: 0.5} +--- !u!222 &6646371810488858664 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033457221832404715} + m_CullTransparentMesh: 1 +--- !u!114 &7822831767140937850 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033457221832404715} + 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: 12800000, guid: 33a3bdf8f6bd1ec4eba7c4bc58183212, type: 3} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: ENUMNAME +--- !u!114 &3722671482862039384 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033457221832404715} + 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 &6058311224544485353 GameObject: m_ObjectHideFlags: 0 @@ -2246,6 +2419,69 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7928927824150591534 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7754613193470953066} + - component: {fileID: 4099568322977131793} + m_Layer: 5 + m_Name: content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7754613193470953066 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7928927824150591534} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8543458054403131507} + m_Father: {fileID: 1718494758036642021} + 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 &4099568322977131793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7928927824150591534} + 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: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &8045610840842517781 GameObject: m_ObjectHideFlags: 0 diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterManager.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterManager.cs index cf69a1f0..325ca0b1 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterManager.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterManager.cs @@ -337,6 +337,12 @@ namespace AxibugEmuOnline.Client int.TryParse(rawStr, out intVal); return intVal; } + else if (valueType == typeof(bool)) + { + bool boolVal; + bool.TryParse(rawStr, out boolVal); + return boolVal; + } else if (valueType.IsEnum) { var names = Enum.GetNames(valueType); diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterParamerter.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterParamerter.cs index e1614a9c..5195dd56 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterParamerter.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterParamerter.cs @@ -28,6 +28,16 @@ namespace Assets.Script.AppMain.Filter public FilterParameter(T defaultValue) { m_defaultValue = defaultValue; + } + + public static implicit operator T(FilterParameter value) + { + return value.GetValue(); + } + + public static implicit operator FilterParameter(T value) + { + return new FilterParameter(value); } } @@ -39,6 +49,11 @@ namespace Assets.Script.AppMain.Filter { return value.GetValue(); } + + public static implicit operator BoolParameter(bool value) + { + return new BoolParameter(value); + } } public class Vector2Parameter : FilterParameter @@ -48,6 +63,11 @@ namespace Assets.Script.AppMain.Filter public static implicit operator Vector2(Vector2Parameter value) { return value.GetValue(); + } + + public static implicit operator Vector2Parameter(Vector2 value) + { + return new Vector2Parameter(value); } } @@ -58,6 +78,11 @@ namespace Assets.Script.AppMain.Filter public static implicit operator float(FloatParameter value) { return value.GetValue(); + } + + public static implicit operator FloatParameter(float value) + { + return new FloatParameter(value); } } @@ -69,5 +94,10 @@ namespace Assets.Script.AppMain.Filter { return value.GetValue(); } + + public static implicit operator IntParameter(int value) + { + return new IntParameter(value); + } } } \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs index 6a59d3de..3d84b008 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/SimpleCRT/SimpleCRT.cs @@ -11,58 +11,44 @@ public class SimpleCRT : FilterEffect protected override string ShaderName => "Filter/yunoda-3DCG/SimpleCRT"; - [Range(0, 1000)] - [Description("White Noise Freq")] - public IntParameter whiteNoiseFrequency = new IntParameter(1); - [Range(0, 1)] - [Description("White Noise Time Left (sec)")] - public FloatParameter whiteNoiseLength = new FloatParameter(0.1f); + [Range(0, 1000)][Description("White Noise Freq")] public IntParameter whiteNoiseFrequency = new IntParameter(1); + [Range(0, 1)][Description("White Noise Time Left (sec)")] public FloatParameter whiteNoiseLength = new FloatParameter(0.1f); private float whiteNoiseTimeLeft; - public int screenJumpFrequency = 1; - public float screenJumpLength = 0.2f; - public float screenJumpMinLevel = 0.1f; - public float screenJumpMaxLevel = 0.9f; + [Range(0, 1000)][Description("Screen Jump Freq")] public IntParameter screenJumpFrequency = 1; + [Range(0, 1f)][Description("Screen Jump Length")] public FloatParameter screenJumpLength = 0.2f; + [Range(0, 1f)][Description("Jump Min")] public FloatParameter screenJumpMinLevel = 0.1f; + [Range(0, 1f)][Description("Jump Max")] public FloatParameter screenJumpMaxLevel = 0.9f; private float screenJumpTimeLeft; - public float flickeringStrength = 0.002f; - public float flickeringCycle = 111f; + [Range(0, 1f)][Description("Flickering Strength")] public FloatParameter flickeringStrength = 0.002f; + [Range(0, 333f)][Description("Flickering Cycle")] public FloatParameter flickeringCycle = 111f; - public bool isSlippage = true; - public bool isSlippageNoise = true; - public float slippageStrength = 0.005f; - public float slippageInterval = 1f; - public float slippageScrollSpeed = 33f; - public float slippageSize = 11f; + [Description("Slip Page")] public BoolParameter isSlippage = true; + [Description("Slip Noise")] public BoolParameter isSlippageNoise = true; + [Range(0, 1)][Description("Slip Strength")] public FloatParameter slippageStrength = 0.005f; + [Range(0, 100)][Description("Slip Intervalw")] public float slippageInterval = 1f; + [Range(0, 330)][Description("Slip Scroll Speed")] public float slippageScrollSpeed = 33f; + [Range(0, 100f)][Description("Slip Size")] public FloatParameter slippageSize = 11f; - public float chromaticAberrationStrength = 0.005f; - public bool isChromaticAberration = true; + [Range(0, 1f)][Description("Chromatic Aberration Strength")] public FloatParameter chromaticAberrationStrength = 0.005f; + [Description("Chromatic Aberration")] public bool isChromaticAberration = true; - public bool isMultipleGhost = true; - public float multipleGhostStrength = 0.01f; + [Description("Multiple Ghost")] public BoolParameter isMultipleGhost = true; + [Range(0, 1f)][Description("Multiple Ghost Strength")] public FloatParameter multipleGhostStrength = 0.01f; - public bool isScanline = true; - public bool isMonochrome = false; + [Description("Scanline")] public BoolParameter isScanline = true; + [Description("Monochrome")] public BoolParameter isMonochrome = false; - public bool isLetterBox = false; + [Description("Letter Box")] public bool isLetterBox = false; public bool isLetterBoxEdgeBlur = false; - public LeterBoxType letterBoxType; + [Description("Letter Box Type")] public FilterParameter letterBoxType = default(LeterBoxType); public enum LeterBoxType { Black, Blur } - public bool isFilmDirt = false; - public Texture2D filmDirtTex; - - public bool isDecalTex = false; - public Texture2D decalTex; - public Vector2 decalTexPos; - public Vector2 decalTexScale; - - public Vector2Int resolutions; - #region Properties in shader private int _WhiteNoiseOnOff; private int _ScanlineOnOff; @@ -148,7 +134,7 @@ public class SimpleCRT : FilterEffect material.SetInteger(_LetterBoxOnOff, isLetterBox ? 0 : 1); //material.SetInteger(_LetterBoxEdgeBlurOnOff, isLetterBoxEdgeBlur ? 0 : 1); - material.SetInteger(_LetterBoxType, (int)letterBoxType); + material.SetInteger(_LetterBoxType, (int)letterBoxType.GetValue()); material.SetInteger(_ScanlineOnOff, isScanline ? 1 : 0); material.SetInteger(_MonochormeOnOff, isMonochrome ? 1 : 0); @@ -158,8 +144,6 @@ public class SimpleCRT : FilterEffect material.SetInteger(_ChromaticAberrationOnOff, isChromaticAberration ? 1 : 0); material.SetInteger(_MultipleGhostOnOff, isMultipleGhost ? 1 : 0); material.SetFloat(_MultipleGhostStrength, multipleGhostStrength); - material.SetInteger(_FilmDirtOnOff, isFilmDirt ? 1 : 0); - material.SetTexture(_FilmDirtTex, filmDirtTex); //////Slippage material.SetInteger(_SlippageOnOff, isSlippage ? 1 : 0); @@ -185,12 +169,5 @@ public class SimpleCRT : FilterEffect material.SetFloat(_ScreenJumpLevel, 0); } } - ////// - - //////Decal Texture - material.SetTexture(_DecalTex, decalTex); - material.SetInteger(_DecalTexOnOff, isDecalTex ? 1 : 0); - material.SetVector(_DecalTexPos, decalTexPos); - material.SetVector(_DecalTexScale, decalTexScale); } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem.cs index 3800fbf5..95bc9125 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem.cs @@ -10,6 +10,8 @@ namespace AxibugEmuOnline.Client [SerializeField] OptionUI_ValueEditItem_IntEdit com_intEdit; [SerializeField] + OptionUI_ValueEditItem_BoolEdit com_boolEdit; + [SerializeField] OptionUI_ValueEditItem_EnumEdit com_enumEdit; IValueEditControl m_currentCom; @@ -18,6 +20,7 @@ namespace AxibugEmuOnline.Client { com_floatEdit.gameObject.SetActive(false); com_intEdit.gameObject.SetActive(false); + com_boolEdit.gameObject.SetActive(false); com_enumEdit.gameObject.SetActive(false); if (menuData is ValueSetMenu) @@ -31,13 +34,17 @@ namespace AxibugEmuOnline.Client { m_currentCom = com_intEdit; } + else if(valueMenu.ValueType == typeof(bool)) + { + m_currentCom = com_boolEdit; + } else if (valueMenu.ValueType.IsEnum) { m_currentCom = com_enumEdit; } else { - App.log.Warning($"尚未支持的数据类型:{valueMenu.ValueType}"); + App.log.Error($"尚未支持的数据类型:{valueMenu.ValueType}"); return; } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_BoolEdit.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_BoolEdit.cs new file mode 100644 index 00000000..85d4139b --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_BoolEdit.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace AxibugEmuOnline.Client +{ + public class OptionUI_ValueEditItem_BoolEdit : MonoBehaviour, IValueEditControl + { + [SerializeField] + Text txt_value; + + private ValueSetMenu m_valueMenu; + + public void SetData(ValueSetMenu valueMenu) + { + m_valueMenu = valueMenu; + txt_value.text = valueMenu.ValueRaw.ToString(); + } + + public void OnLeft() + { + OnExecute(); + } + + public void OnRight() + { + OnExecute(); + } + + public void OnExecute() + { + var value = (bool)m_valueMenu.ValueRaw; + value = !value; + txt_value.text = value.ToString(); + m_valueMenu.OnValueChanged(value); + } + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_BoolEdit.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_BoolEdit.cs.meta new file mode 100644 index 00000000..556e4917 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI_ValueEditItem_BoolEdit.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c864ef7d3920dfc4cb69a86ef3af426b -- 2.36.0.windows.1 From 35a5f03a667036e58b5afb50e11e39abb4a7a66b Mon Sep 17 00:00:00 2001 From: Alienjack Date: Fri, 10 Jan 2025 23:17:09 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=96=B0=E5=A2=9EGamePadManager=E7=B1=BB?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E4=BA=8E=E7=AE=A1=E7=90=86Unity=E6=89=8B?= =?UTF-8?q?=E6=9F=84=E8=BF=9E=E6=8E=A5=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Script/AppMain/App.cs | 492 +++++++++--------- .../Assets/Script/AppMain/Initer.cs | 79 +-- .../AppSettings/Filter/FilterChainEffect.cs | 388 +++++++------- .../AppMain/Manager/GamePadManager.meta | 8 + .../AppMain/Manager/GamePadManager/GamePad.cs | 26 + .../Manager/GamePadManager/GamePad.cs.meta | 2 + .../Manager/GamePadManager/GamePadManager.cs | 121 +++++ .../GamePadManager/GamePadManager.cs.meta | 2 + 8 files changed, 641 insertions(+), 477 deletions(-) create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager.meta create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePad.cs create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePad.cs.meta create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePadManager.cs create mode 100644 AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePadManager.cs.meta diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs index f8b50ce9..2f394d93 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs @@ -1,249 +1,253 @@ -using AxibugEmuOnline.Client.Manager; -using AxibugEmuOnline.Client.Network; -using AxibugProtobuf; -using System; -using System.Collections; -using System.IO; -using System.Threading.Tasks; -using UnityEngine; -using static AxibugEmuOnline.Client.HttpAPI; -using static AxibugEmuOnline.Client.Manager.LogManager; - -namespace AxibugEmuOnline.Client.ClientCore -{ - public static class App - { - public static string TokenStr; - public static string IP; - public static int Port; - public static LogManager log; - public static NetworkHelper network; - public static AppLogin login; - public static AppChat chat; - public static UserDataManager user; - //public static AppNetGame netgame; - public static AppEmu emu; +using AxibugEmuOnline.Client.Manager; +using AxibugEmuOnline.Client.Network; +using AxibugProtobuf; +using System; +using System.Collections; +using System.IO; +using System.Threading.Tasks; +using UnityEngine; +using static AxibugEmuOnline.Client.HttpAPI; +using static AxibugEmuOnline.Client.Manager.LogManager; + +namespace AxibugEmuOnline.Client.ClientCore +{ + public static class App + { + public static string TokenStr; + public static string IP; + public static int Port; + public static LogManager log; + public static NetworkHelper network; + public static AppLogin login; + public static AppChat chat; + public static UserDataManager user; + public static AppEmu emu; /// /// nes Rom库 - /// - public static RomLib nesRomLib; + /// + public static RomLib nesRomLib; /// /// 收藏 Rom库 - /// - public static RomLib starRomLib; - public static HttpAPI httpAPI; - public static CacheManager CacheMgr; - public static AppRoom roomMgr; - public static AppSettings settings; - public static AppShare share; - private static object gameSavMgr; - static bool bTest; - static string mTestSrvIP; - #region Mono - public static TickLoop tickLoop; - private static CoroutineRunner coRunner; - -#if UNITY_PSP2 - public static SonyVitaCommonDialog sonyVitaCommonDialog; -#endif - - #endregion - -#if UNITY_PSP2 && !UNITY_EDITOR //PSV真机 - public static string PersistentDataPath => "ux0:data/AxibugEmu"; -#else - public static string PersistentDataPath => Application.persistentDataPath; -#endif - public static void Init(bool isTest = false, string testSrvIP = "", bool bUseLocalWebApi = false, string mLocalWebApi = "") - { - log = new LogManager(OnLogOut); - - //其他平台必要的初始化 - if (UnityEngine.Application.platform == RuntimePlatform.PSP2) - { - PSP2Init(); - } - - settings = new AppSettings(); - network = new NetworkHelper(); - login = new AppLogin(); - chat = new AppChat(); - user = new UserDataManager(); - emu = new AppEmu(); - //netgame = new AppNetGame(); - httpAPI = new HttpAPI(); - if (bUseLocalWebApi) - httpAPI.WebHost = mLocalWebApi; - nesRomLib = new RomLib(RomPlatformType.Nes); - starRomLib = new RomLib(); - CacheMgr = new CacheManager(); - roomMgr = new AppRoom(); - share = new AppShare(); - gameSavMgr = new AppGameSavMgr(); - bTest = isTest; - mTestSrvIP = testSrvIP; - var go = new GameObject("[AppAxibugEmuOnline]"); - GameObject.DontDestroyOnLoad(go); - tickLoop = go.AddComponent(); - coRunner = go.AddComponent(); - - - var importNode = GameObject.Find("IMPORTENT"); - if (importNode != null) GameObject.DontDestroyOnLoad(importNode); - - StartCoroutine(AppTickFlow()); - RePullNetInfo(); - } - - - private static void PSP2Init() - { - //PSVita最好手动创建目录 - if (!Directory.Exists(PersistentDataPath)) - Directory.CreateDirectory(PersistentDataPath); - -#if UNITY_PSP2 - //创建PSV弹窗UI - sonyVitaCommonDialog = new GameObject().AddComponent(); - //释放解码 FMV的26M内存,一般游戏用不上(PSP才用那破玩意儿) - UnityEngine.PSVita.PSVitaVideoPlayer.TransferMemToMonoHeap(); -#endif - - } - - private static IEnumerator AppTickFlow() - { - while (true) - { - Tick(); - yield return null; - } - } - - public static void RePullNetInfo() - { - StartCoroutine(StartNetInit()); - } - - static IEnumerator StartNetInit() - { - if (App.network.isConnected) - yield break; - - int platform = 0; - if (bTest) - { - yield return null; - Connect(mTestSrvIP, 10492); - yield break; - } - - bool bHttpCheckDone = false; - Resp_CheckStandInfo resp = null; - while (true) - { - AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get($"{App.httpAPI.WebSiteApi}/CheckStandInfo?platform={platform}&version={Application.version}"); - yield return request.SendWebRequest; - if (!request.downloadHandler.isDone) - { - bHttpCheckDone = false; - } - else if (request.downloadHandler.bHadErr) - { - bHttpCheckDone = false; - App.log.Error(request.downloadHandler.ErrInfo); - } - else - { - try - { - resp = JsonUtility.FromJson(request.downloadHandler.text); - bHttpCheckDone = true; - } - catch (Exception ex) - { - bHttpCheckDone = false; - App.log.Error(ex.ToString()); - } - } - - //请求成功 - if (bHttpCheckDone) - { - break; - } - else - { - yield return new WaitForSeconds(1); - App.log.Debug("请求失败,重试请求API..."); - } - } - - /*UnityWebRequest request = UnityWebRequest.Get($"{App.httpAPI.WebSiteApi}/CheckStandInfo?platform={platform}&version={Application.version}"); - yield return request.SendWebRequest(); - - if (request.result != UnityWebRequest.Result.Success) - yield break; - - App.log.Debug($"ApiResp => {request.downloadHandler.text}"); - Resp_CheckStandInfo resp = JsonUtility.FromJson(request.downloadHandler.text);*/ - - //需要更新 - if (resp.needUpdateClient == 1) - { - //TODO - } - - yield return null; - //Connect("127.0.0.1", 10492); - Connect(resp.serverIp, resp.serverPort); - } - - private static void Tick() - { - nesRomLib.ExecuteFetchRomInfo(); - } - - public static Coroutine StartCoroutine(IEnumerator itor) - { - return coRunner.StartCoroutine(itor); - } - - public static void StopCoroutine(Coroutine cor) - { - coRunner.StopCoroutine(cor); - } - - public static void Connect(string IP, int port) - { - Task task = new Task(() => - { - network.Init(IP, port); - }); - task.Start(); - } - - public static void Close() - { - App.log.Info("停止"); - } - static void OnLogOut(int LogLevel, string msg) - { - E_LogType logType = (E_LogType)LogLevel; - switch (logType) - { - case E_LogType.Debug: - case E_LogType.Info: - Debug.Log("[AxiNet]:" + msg); - break; - case E_LogType.Warning: - Debug.LogWarning("[AxiNet]:" + msg); - break; - case E_LogType.Error: - Debug.LogError("[AxiNet]:" + msg); - break; - } - } - - } + /// + public static RomLib starRomLib; + public static HttpAPI httpAPI; + public static CacheManager CacheMgr; + public static AppRoom roomMgr; + public static AppSettings settings; + public static AppShare share; + public static GamePadManager gamePadMgr; + private static object gameSavMgr; + static bool bTest; + static string mTestSrvIP; + #region Mono + public static TickLoop tickLoop; + private static CoroutineRunner coRunner; + +#if UNITY_PSP2 + public static SonyVitaCommonDialog sonyVitaCommonDialog; +#endif + + #endregion + +#if UNITY_PSP2 && !UNITY_EDITOR //PSV真机 + public static string PersistentDataPath => "ux0:data/AxibugEmu"; +#else + public static string PersistentDataPath => Application.persistentDataPath; +#endif + public static void Init(bool isTest = false, string testSrvIP = "", bool bUseLocalWebApi = false, string mLocalWebApi = "") + { + log = new LogManager(OnLogOut); + + //其他平台必要的初始化 + if (UnityEngine.Application.platform == RuntimePlatform.PSP2) + { + PSP2Init(); + } + + settings = new AppSettings(); + network = new NetworkHelper(); + login = new AppLogin(); + chat = new AppChat(); + user = new UserDataManager(); + emu = new AppEmu(); + httpAPI = new HttpAPI(); + if (bUseLocalWebApi) + httpAPI.WebHost = mLocalWebApi; + nesRomLib = new RomLib(RomPlatformType.Nes); + starRomLib = new RomLib(); + CacheMgr = new CacheManager(); + roomMgr = new AppRoom(); + share = new AppShare(); + gameSavMgr = new AppGameSavMgr(); + gamePadMgr = new GamePadManager(); + + bTest = isTest; + mTestSrvIP = testSrvIP; + var go = new GameObject("[AppAxibugEmuOnline]"); + GameObject.DontDestroyOnLoad(go); + tickLoop = go.AddComponent(); + coRunner = go.AddComponent(); + + + var importNode = GameObject.Find("IMPORTENT"); + if (importNode != null) GameObject.DontDestroyOnLoad(importNode); + + StartCoroutine(AppTickFlow()); + RePullNetInfo(); + } + + + private static void PSP2Init() + { + //PSVita最好手动创建目录 + if (!Directory.Exists(PersistentDataPath)) + Directory.CreateDirectory(PersistentDataPath); + +#if UNITY_PSP2 + //创建PSV弹窗UI + sonyVitaCommonDialog = new GameObject().AddComponent(); + //释放解码 FMV的26M内存,一般游戏用不上(PSP才用那破玩意儿) + UnityEngine.PSVita.PSVitaVideoPlayer.TransferMemToMonoHeap(); +#endif + + } + + private static IEnumerator AppTickFlow() + { + while (true) + { + Tick(); + yield return null; + } + } + + public static void RePullNetInfo() + { + StartCoroutine(StartNetInit()); + } + + static IEnumerator StartNetInit() + { + if (App.network.isConnected) + yield break; + + int platform = 0; + if (bTest) + { + yield return null; + Connect(mTestSrvIP, 10492); + yield break; + } + + bool bHttpCheckDone = false; + Resp_CheckStandInfo resp = null; + while (true) + { + AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get($"{App.httpAPI.WebSiteApi}/CheckStandInfo?platform={platform}&version={Application.version}"); + yield return request.SendWebRequest; + if (!request.downloadHandler.isDone) + { + bHttpCheckDone = false; + } + else if (request.downloadHandler.bHadErr) + { + bHttpCheckDone = false; + App.log.Error(request.downloadHandler.ErrInfo); + } + else + { + try + { + resp = JsonUtility.FromJson(request.downloadHandler.text); + bHttpCheckDone = true; + } + catch (Exception ex) + { + bHttpCheckDone = false; + App.log.Error(ex.ToString()); + } + } + + //请求成功 + if (bHttpCheckDone) + { + break; + } + else + { + yield return new WaitForSeconds(1); + App.log.Debug("请求失败,重试请求API..."); + } + } + + /*UnityWebRequest request = UnityWebRequest.Get($"{App.httpAPI.WebSiteApi}/CheckStandInfo?platform={platform}&version={Application.version}"); + yield return request.SendWebRequest(); + + if (request.result != UnityWebRequest.Result.Success) + yield break; + + App.log.Debug($"ApiResp => {request.downloadHandler.text}"); + Resp_CheckStandInfo resp = JsonUtility.FromJson(request.downloadHandler.text);*/ + + //需要更新 + if (resp.needUpdateClient == 1) + { + //TODO + } + + yield return null; + //Connect("127.0.0.1", 10492); + Connect(resp.serverIp, resp.serverPort); + } + + private static void Tick() + { + nesRomLib.ExecuteFetchRomInfo(); + starRomLib.ExecuteFetchRomInfo(); + + gamePadMgr.Update(); + } + + public static Coroutine StartCoroutine(IEnumerator itor) + { + return coRunner.StartCoroutine(itor); + } + + public static void StopCoroutine(Coroutine cor) + { + coRunner.StopCoroutine(cor); + } + + public static void Connect(string IP, int port) + { + Task task = new Task(() => + { + network.Init(IP, port); + }); + task.Start(); + } + + public static void Close() + { + App.log.Info("停止"); + } + static void OnLogOut(int LogLevel, string msg) + { + E_LogType logType = (E_LogType)LogLevel; + switch (logType) + { + case E_LogType.Debug: + case E_LogType.Info: + Debug.Log("[AxiNet]:" + msg); + break; + case E_LogType.Warning: + Debug.LogWarning("[AxiNet]:" + msg); + break; + case E_LogType.Error: + Debug.LogError("[AxiNet]:" + msg); + break; + } + } + + } } \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Initer.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Initer.cs index b0834165..881a74da 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Initer.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Initer.cs @@ -1,50 +1,51 @@ -using AxibugEmuOnline.Client.ClientCore; -using UnityEngine; - -namespace AxibugEmuOnline.Client -{ - public class Initer : MonoBehaviour - { - static GlobalRef m_refs; - public static CanvasGroup FilterPreview => m_refs.FilterPreview; - public static CanvasGroup XMBBg => m_refs.XMBBg; - - public static string dev_UUID; - - [SerializeField] +using AxibugEmuOnline.Client.ClientCore; +using System.Text; +using UnityEngine; + +namespace AxibugEmuOnline.Client +{ + public class Initer : MonoBehaviour + { + static GlobalRef m_refs; + public static CanvasGroup FilterPreview => m_refs.FilterPreview; + public static CanvasGroup XMBBg => m_refs.XMBBg; + + public static string dev_UUID; + + [SerializeField] GameObject IMPORTENT; -#if UNITY_EDITOR - public bool bTestSkipWebApiToConServer = false; - public string mTestSrvIP = "192.168.0.47"; - public bool bUseLocalWebApi = false; - public string mLocalWebApi = "http://localhost:5051"; - public bool bEditorUUID = false; -#endif - - private void Awake() +#if UNITY_EDITOR + public bool bTestSkipWebApiToConServer = false; + public string mTestSrvIP = "192.168.0.47"; + public bool bUseLocalWebApi = false; + public string mLocalWebApi = "http://localhost:5051"; + public bool bEditorUUID = false; +#endif + + private void Awake() { -#if UNITY_EDITOR - App.Init(bTestSkipWebApiToConServer, mTestSrvIP, bUseLocalWebApi,mLocalWebApi); - dev_UUID = SystemInfo.deviceUniqueIdentifier; +#if UNITY_EDITOR + App.Init(bTestSkipWebApiToConServer, mTestSrvIP, bUseLocalWebApi,mLocalWebApi); + dev_UUID = SystemInfo.deviceUniqueIdentifier; if (bEditorUUID) - { - dev_UUID += "_Editor"; - } -#else - App.Init(this); - dev_UUID = SystemInfo.deviceUniqueIdentifier; -#endif - + { + dev_UUID += "_Editor"; + } +#else + App.Init(this); + dev_UUID = SystemInfo.deviceUniqueIdentifier; +#endif + m_refs = Instantiate(IMPORTENT, transform).GetComponent(); - } - + } + private void Start() { App.settings.Filter.ShutDownFilterPreview(); App.settings.Filter.ShutDownFilter(); - } - } -} + } + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterChainEffect.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterChainEffect.cs index 6508fad7..0807fb89 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterChainEffect.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/Filter/FilterChainEffect.cs @@ -1,160 +1,160 @@ -using Assets.Script.AppMain.Filter; -using AxibugEmuOnline.Client; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Experimental.Rendering; - -public abstract class FilterChainEffect : FilterEffect -{ - #region SealedForDisable - protected sealed override string ShaderName => null; - protected sealed override void OnInit(Material renderMat) { } - +using Assets.Script.AppMain.Filter; +using AxibugEmuOnline.Client; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Experimental.Rendering; + +public abstract class FilterChainEffect : FilterEffect +{ + #region SealedForDisable + protected sealed override string ShaderName => null; + protected sealed override void OnInit(Material renderMat) { } + public sealed override void Render(Texture src, RenderTexture result) { - OnRenderer(src, result); - } - protected sealed override void OnRenderer(Material renderMat, Texture src, RenderTexture result) { } - #endregion - - List m_passes = new List(); - - static int Original; - static int OriginalSize; - static int Source; - static int SourceSize; - static int FrameCount; - static int OutputSize; - - List m_passOutputTexNames = new List(); - List m_passOutputTexSizes = new List(); - - static FilterChainEffect() - { - Original = Shader.PropertyToID(nameof(Original)); - OriginalSize = Shader.PropertyToID(nameof(OriginalSize)); - Source = Shader.PropertyToID(nameof(Source)); - SourceSize = Shader.PropertyToID(nameof(SourceSize)); - FrameCount = Shader.PropertyToID(nameof(FrameCount)); - OutputSize = Shader.PropertyToID(nameof(OutputSize)); - } - - protected sealed override void Init() - { - DefinePasses(ref m_passes); - for (int i = 0; i < m_passes.Count; i++) - { - m_passes[i].Init(i); - m_passOutputTexNames.Add(Shader.PropertyToID(m_passes[i].NormalOutputTextureName)); - m_passOutputTexSizes.Add(Shader.PropertyToID($"{m_passes[i].NormalOutputTextureName}Size")); + OnRenderer(src, result); + } + protected sealed override void OnRenderer(Material renderMat, Texture src, RenderTexture result) { } + #endregion + + List m_passes = new List(); + + static int Original; + static int OriginalSize; + static int Source; + static int SourceSize; + static int FrameCount; + static int OutputSize; + + List m_passOutputTexNames = new List(); + List m_passOutputTexSizes = new List(); + + static FilterChainEffect() + { + Original = Shader.PropertyToID(nameof(Original)); + OriginalSize = Shader.PropertyToID(nameof(OriginalSize)); + Source = Shader.PropertyToID(nameof(Source)); + SourceSize = Shader.PropertyToID(nameof(SourceSize)); + FrameCount = Shader.PropertyToID(nameof(FrameCount)); + OutputSize = Shader.PropertyToID(nameof(OutputSize)); + } + + protected sealed override void Init() + { + DefinePasses(ref m_passes); + for (int i = 0; i < m_passes.Count; i++) + { + m_passes[i].Init(i); + m_passOutputTexNames.Add(Shader.PropertyToID(m_passes[i].NormalOutputTextureName)); + m_passOutputTexSizes.Add(Shader.PropertyToID($"{m_passes[i].NormalOutputTextureName}Size")); if (m_passes[i].AliasOutputTextureName != null) { m_passOutputTexNames.Add(Shader.PropertyToID(m_passes[i].AliasOutputTextureName)); - m_passOutputTexSizes.Add(Shader.PropertyToID($"{m_passes[i].AliasOutputTextureName}Size")); - } - } - } - - Dictionary m_outputCaches = new Dictionary(); - private void OnRenderer(Texture input, RenderTexture finalOut) - { - m_outputCaches.Clear(); - - Vector4 originalSize = new Vector4(input.width, input.height, 1f / input.width, 1f / input.height); - - Texture lastoutput = input; - for (int i = 0; i < m_passes.Count; i++) - { - var pass = m_passes[i]; - pass.OnRender(); - - pass.Mat.SetTexture(Original, input); - pass.Mat.SetVector(OriginalSize, originalSize); - pass.Mat.SetTexture(Source, lastoutput); + m_passOutputTexSizes.Add(Shader.PropertyToID($"{m_passes[i].AliasOutputTextureName}Size")); + } + } + } + + Dictionary m_outputCaches = new Dictionary(); + private void OnRenderer(Texture input, RenderTexture finalOut) + { + m_outputCaches.Clear(); + + Vector4 originalSize = new Vector4(input.width, input.height, 1f / input.width, 1f / input.height); + + Texture lastoutput = input; + for (int i = 0; i < m_passes.Count; i++) + { + var pass = m_passes[i]; + pass.OnRender(); + + pass.Mat.SetTexture(Original, input); + pass.Mat.SetVector(OriginalSize, originalSize); + pass.Mat.SetTexture(Source, lastoutput); pass.Mat.SetVector(SourceSize, new Vector4(lastoutput.width, lastoutput.height, 1f / lastoutput.width, 1f / lastoutput.height)); - pass.Mat.SetFloat(FrameCount, Time.frameCount); - - for (int index = 0; index < m_passOutputTexNames.Count; index++) - { - var existoutput = m_passOutputTexNames[index]; - var existoutputSize = m_passOutputTexSizes[index]; + pass.Mat.SetFloat(FrameCount, Time.frameCount); + + for (int index = 0; index < m_passOutputTexNames.Count; index++) + { + var existoutput = m_passOutputTexNames[index]; + var existoutputSize = m_passOutputTexSizes[index]; if (m_outputCaches.TryGetValue(existoutput, out var passOutput)) { if (pass.Mat.HasTexture(existoutput)) pass.Mat.SetTexture(existoutput, passOutput); if (pass.Mat.HasVector(existoutputSize)) - pass.Mat.SetVector(existoutputSize, new Vector4(passOutput.width, passOutput.height, 1f / passOutput.width, 1f / passOutput.height)); - } - } - + pass.Mat.SetVector(existoutputSize, new Vector4(passOutput.width, passOutput.height, 1f / passOutput.width, 1f / passOutput.height)); + } + } + var output = pass.GetOutput(input, lastoutput, finalOut); - pass.Mat.SetVector(OutputSize, new Vector4(output.width, output.height, 1f / output.width, 1f / output.height)); - - m_outputCaches[pass.NormalOutputTextureName_PID] = output; - if (pass.AliasOutputTextureName != null) m_outputCaches[pass.AliasOutputTextureName_PID] = output; - - Graphics.Blit(lastoutput, output, pass.Mat); - - lastoutput = output; - } - - Graphics.Blit(lastoutput, finalOut); - - foreach (var rt in m_outputCaches.Values) - RenderTexture.ReleaseTemporary(rt); - } - - protected abstract void DefinePasses(ref List passes); - - public class PassDefine + pass.Mat.SetVector(OutputSize, new Vector4(output.width, output.height, 1f / output.width, 1f / output.height)); + + m_outputCaches[pass.NormalOutputTextureName_PID] = output; + if (pass.AliasOutputTextureName != null) m_outputCaches[pass.AliasOutputTextureName_PID] = output; + + Graphics.Blit(lastoutput, output, pass.Mat); + + lastoutput = output; + } + + Graphics.Blit(lastoutput, finalOut); + + foreach (var rt in m_outputCaches.Values) + RenderTexture.ReleaseTemporary(rt); + } + + protected abstract void DefinePasses(ref List passes); + + public class PassDefine { - public string ShaderName { get; private set; } - public FilterMode FilterMode { get; private set; } - public TextureWrapMode WrapMode { get; private set; } + public string ShaderName { get; private set; } + public FilterMode FilterMode { get; private set; } + public TextureWrapMode WrapMode { get; private set; } public EnumScaleMode ScaleModeX { get; private set; } - public EnumScaleMode ScaleModeY { get; private set; } - public float ScaleX { get; private set; } - public float ScaleY { get; private set; } - public string AliasOutputTextureName { get; private set; } - public int AliasOutputTextureName_PID { get; private set; } - public string NormalOutputTextureName { get; private set; } - public int NormalOutputTextureName_PID { get; private set; } + public EnumScaleMode ScaleModeY { get; private set; } + public float ScaleX { get; private set; } + public float ScaleY { get; private set; } + public string AliasOutputTextureName { get; private set; } + public int AliasOutputTextureName_PID { get; private set; } + public string NormalOutputTextureName { get; private set; } + public int NormalOutputTextureName_PID { get; private set; } public bool sRGB { get; private set; } - - private PassDefine() { } - - public static PassDefine Create( - string shaderName, - FilterMode filterMode = FilterMode.Point, - TextureWrapMode wrapMode = TextureWrapMode.Clamp, - EnumScaleMode scaleModeX = EnumScaleMode.Source, EnumScaleMode scaleModeY = EnumScaleMode.Source, float scaleX = 1f, float scaleY = 1f, - string outputAlias = null, - bool sRGB = false - ) - { - return new PassDefine() - { - ShaderName = shaderName, - FilterMode = filterMode, - WrapMode = wrapMode, - ScaleModeX = scaleModeX, - ScaleModeY = scaleModeY, - ScaleX = scaleX, - ScaleY = scaleY, - AliasOutputTextureName = outputAlias, - sRGB = sRGB, - }; - } - - private Dictionary m_linkingParams = new Dictionary(); + + private PassDefine() { } + + public static PassDefine Create( + string shaderName, + FilterMode filterMode = FilterMode.Point, + TextureWrapMode wrapMode = TextureWrapMode.Clamp, + EnumScaleMode scaleModeX = EnumScaleMode.Source, EnumScaleMode scaleModeY = EnumScaleMode.Source, float scaleX = 1f, float scaleY = 1f, + string outputAlias = null, + bool sRGB = false + ) + { + return new PassDefine() + { + ShaderName = shaderName, + FilterMode = filterMode, + WrapMode = wrapMode, + ScaleModeX = scaleModeX, + ScaleModeY = scaleModeY, + ScaleX = scaleX, + ScaleY = scaleY, + AliasOutputTextureName = outputAlias, + sRGB = sRGB, + }; + } + + private Dictionary m_linkingParams = new Dictionary(); public PassDefine SetParameters(string shaderValName, FilterParameter para) { m_linkingParams[shaderValName] = para; return this; - } - - public int PassIndex { get; private set; } + } + + public int PassIndex { get; private set; } public Material Mat { get; private set; } public void OnRender() @@ -167,63 +167,63 @@ public abstract class FilterChainEffect : FilterEffect if (valType == typeof(float)) Mat.SetFloat(paraName, (float)val); } - } - internal void Init(int passIndex) - { - Mat = new Material(Shader.Find(ShaderName)); - PassIndex = passIndex; - NormalOutputTextureName = $"PassOutput{passIndex}"; - NormalOutputTextureName_PID = Shader.PropertyToID(NormalOutputTextureName); - - if (AliasOutputTextureName != null) AliasOutputTextureName_PID = Shader.PropertyToID(AliasOutputTextureName); - } - - internal RenderTexture GetOutput(Texture original, Texture source, Texture final) - { - int width = 0; - switch (ScaleModeX) - { - case EnumScaleMode.Viewport: - width = (int)(final.width * ScaleX); - break; - case EnumScaleMode.Source: - width = (int)(source.width * ScaleX); - break; - case EnumScaleMode.Absolute: - width = (int)ScaleX; - break; - } + } + internal void Init(int passIndex) + { + Mat = new Material(Shader.Find(ShaderName)); + PassIndex = passIndex; + NormalOutputTextureName = $"PassOutput{passIndex}"; + NormalOutputTextureName_PID = Shader.PropertyToID(NormalOutputTextureName); + + if (AliasOutputTextureName != null) AliasOutputTextureName_PID = Shader.PropertyToID(AliasOutputTextureName); + } + + internal RenderTexture GetOutput(Texture original, Texture source, Texture final) + { + int width = 0; + switch (ScaleModeX) + { + case EnumScaleMode.Viewport: + width = (int)(final.width * ScaleX); + break; + case EnumScaleMode.Source: + width = (int)(source.width * ScaleX); + break; + case EnumScaleMode.Absolute: + width = (int)ScaleX; + break; + } int height = 0; - switch (ScaleModeY) - { - case EnumScaleMode.Viewport: - height = (int)(final.height * ScaleY); - break; - case EnumScaleMode.Source: - height = (int)(source.height * ScaleY); - break; - case EnumScaleMode.Absolute: - height = (int)ScaleY; - break; - } - - //if (sRGB) format = GraphicsFormat.R8G8B8A8_SRGB; + switch (ScaleModeY) + { + case EnumScaleMode.Viewport: + height = (int)(final.height * ScaleY); + break; + case EnumScaleMode.Source: + height = (int)(source.height * ScaleY); + break; + case EnumScaleMode.Absolute: + height = (int)ScaleY; + break; + } + + //if (sRGB) format = GraphicsFormat.R8G8B8A8_SRGB; var rt = RenderTexture.GetTemporary(width, height, 0, GraphicsFormat.R8G8B8A8_UNorm, 1); - rt.wrapMode = WrapMode; - rt.filterMode = FilterMode; - - return rt; - } - } - - public enum EnumScaleMode - { - /// 以输入源为缩放基准 以分辨率作为缩放基准 以固定值定义尺寸 以输入源为缩放基准 以分辨率作为缩放基准 以固定值定义尺寸 + /// 被Unity所识别的通用GamePad类 + /// + public class GamePad + { + internal GamePadInfo m_info; + public int Index => m_info.Index; + public string Name => m_info.Name; + public bool Offline { get; internal set; } + + internal GamePad(GamePadInfo info) + { + m_info = info; + } + + public override string ToString() + { + return $"{Index}:{Name}{(Offline ? "(Offline)" : string.Empty)}"; + } + } + } +} \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePad.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePad.cs.meta new file mode 100644 index 00000000..531c8952 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePad.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c2c0a06020f65a747af5490a6112361b \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePadManager.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePadManager.cs new file mode 100644 index 00000000..6941e69f --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePadManager.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace AxibugEmuOnline.Client.Manager +{ + public partial class GamePadManager + { + #region Events + public delegate void GamePadConnectedHandle(GamePad newConnectGamePad); + /// 当一个手柄连接时触发 + public event GamePadConnectedHandle OnGamePadConnected; + + public delegate void GamePadDisConnectedHandle(GamePad disConnectGamePad); + /// 当一个手柄断开时触发 + public event GamePadDisConnectedHandle OnGamePadDisConnected; + #endregion + + Dictionary m_gamePads = new Dictionary(); + HashSet m_temp = new HashSet(); + + public void Update() + { + m_temp.Clear(); + foreach (var info in m_gamePads.Keys) + m_temp.Add(info); //记录需要被移除的手柄 + + var devices = Input.GetJoystickNames(); + for (int i = 0; i < devices.Length; i++) + { + var info = new GamePadInfo { Index = i, Name = devices[i] }; + m_temp.Remove(info); + + if (!m_gamePads.ContainsKey(info)) + { + m_gamePads[info] = new GamePad(info); + OnGamePadConnected?.Invoke(m_gamePads[info]); + }; + } + + foreach (var info in m_temp) + { + if (m_gamePads.TryGetValue(info, out GamePad gp)) + { + m_gamePads.Remove(info); + gp.Offline = true; + OnGamePadDisConnected?.Invoke(gp); + } + } + } + + /// + /// 获取所有已连接的手柄,返回的结果顺序与手柄序号无关 + /// + /// + public GamePad[] GetGamePads() + { + return m_gamePads.Values.ToArray(); + } + + internal struct GamePadInfo : IEquatable, IComparable + { + internal int Index; + internal string Name; + + public override bool Equals(object obj) + { + if (obj is GamePadInfo) + { + return Equals((GamePadInfo)obj); + } + return false; + } + + public bool Equals(GamePadInfo other) + { + return Index == other.Index && Name == other.Name; + } + + public override int GetHashCode() + { + // Custom hash code implementation without HashCombine + int hash = 17; + hash = hash * 31 + Index.GetHashCode(); + hash = hash * 31 + (Name != null ? Name.GetHashCode() : 0); + return hash; + } + + public int CompareTo(GamePadInfo other) + { + int indexComparison = Index.CompareTo(other.Index); + if (indexComparison != 0) + { + return indexComparison; + } + return string.Compare(Name, other.Name, StringComparison.Ordinal); + } + + public static bool operator ==(GamePadInfo left, GamePadInfo right) + { + return left.Equals(right); + } + + public static bool operator !=(GamePadInfo left, GamePadInfo right) + { + return !(left == right); + } + + public static bool operator <(GamePadInfo left, GamePadInfo right) + { + return left.CompareTo(right) < 0; + } + + public static bool operator >(GamePadInfo left, GamePadInfo right) + { + return left.CompareTo(right) > 0; + } + } + } +} \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePadManager.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePadManager.cs.meta new file mode 100644 index 00000000..38c4ba12 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/GamePadManager/GamePadManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ce4d215abea527e4a8cf1103cbfecf6b \ No newline at end of file -- 2.36.0.windows.1