From d6fa9772b9a62b28ba77121e12a2d1822f9814f9 Mon Sep 17 00:00:00 2001 From: ALIENJACK Date: Thu, 5 Dec 2024 01:31:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=A7=E8=BE=B9=E6=A0=8FUI=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=AF=E7=BC=96=E8=BE=91=E5=80=BC=E7=9A=84=E9=80=89=E9=A1=B9?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=EF=BC=8C=E6=BB=A4=E9=95=9C=E9=A2=84=E8=AE=BE?= =?UTF-8?q?=E7=8E=B0=E5=9C=A8=E5=B7=B2=E6=94=AF=E6=8C=81=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resources/UIPrefabs/OptionUI.prefab | 1241 +++++++++++++++++ .../Assets/Script/Filter/FilterEffect.cs | 33 +- .../Assets/Script/Manager/FilterManager.cs | 63 +- .../Script/UI/BgSettingsUI/UI_FilterItem.cs | 39 +- .../Assets/Script/UI/OptionUI/OptionUI.cs | 55 +- .../Script/UI/OptionUI/OptionUI_MenuItem.cs | 2 + .../UI/OptionUI/OptionUI_ValueEditItem.cs | 69 + .../OptionUI/OptionUI_ValueEditItem.cs.meta | 11 + .../OptionUI_ValueEditItem_EnumEdit.cs | 56 + .../OptionUI_ValueEditItem_EnumEdit.cs.meta | 2 + .../OptionUI_ValueEditItem_FloatEdit.cs | 53 + .../OptionUI_ValueEditItem_FloatEdit.cs.meta | 2 + 12 files changed, 1582 insertions(+), 44 deletions(-) create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem.cs create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem.cs.meta create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_EnumEdit.cs create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_EnumEdit.cs.meta create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_FloatEdit.cs create mode 100644 AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_FloatEdit.cs.meta diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab index 4e3cbc6..712e88c 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/OptionUI.prefab @@ -1,5 +1,103 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &197910204715683756 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3877041774025625573} + - component: {fileID: 4761092020446986678} + - component: {fileID: 6349204039935213934} + - component: {fileID: 1930203863893015022} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3877041774025625573 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197910204715683756} + 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: 2450201408575734812} + 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 &4761092020446986678 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197910204715683756} + m_CullTransparentMesh: 1 +--- !u!114 &6349204039935213934 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197910204715683756} + 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: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 185 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: '[ValueMenu]' +--- !u!114 &1930203863893015022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197910204715683756} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0848bff101191904ead4bb831f7084db, type: 3} + m_Name: + m_EditorClassIdentifier: + m_BlurFactor: 1 + m_Style: 1 + m_AdditionalShadows: [] + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5} + m_EffectDistance: {x: 1.5, y: -1.5} + m_UseGraphicAlpha: 1 --- !u!1 &641655917557919365 GameObject: m_ObjectHideFlags: 0 @@ -96,6 +194,102 @@ MonoBehaviour: m_FlexibleWidth: 1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &663717611383481067 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1609320592060400513} + - component: {fileID: 7860273967724122996} + - component: {fileID: 1062489471918314902} + - component: {fileID: 6374434662818679556} + m_Layer: 5 + m_Name: Icon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1609320592060400513 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663717611383481067} + 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: 2450201408575734812} + 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 &7860273967724122996 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663717611383481067} + m_CullTransparentMesh: 1 +--- !u!114 &1062489471918314902 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663717611383481067} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6374434662818679556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663717611383481067} + 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: 40 + m_PreferredHeight: 40 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &782102846085628909 GameObject: m_ObjectHideFlags: 0 @@ -529,6 +723,77 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: animator: {fileID: 8744505332349586225} +--- !u!1 &2471254561136382013 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 816049057894123782} + - component: {fileID: 1792874459052106251} + - component: {fileID: 3614321873420207159} + m_Layer: 5 + m_Name: EnumEdit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &816049057894123782 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2471254561136382013} + 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: 3923554087608668260} + 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 &1792874459052106251 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2471254561136382013} + 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: 50 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &3614321873420207159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2471254561136382013} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ef1018f09e7c5b049b75128ee308d372, type: 3} + m_Name: + m_EditorClassIdentifier: + txt_value: {fileID: 882902782535747463} --- !u!1 &2500436782395572584 GameObject: m_ObjectHideFlags: 0 @@ -610,6 +875,105 @@ MonoBehaviour: m_MenuNameTxt: {fileID: 1824253632728291860} m_Icon: {fileID: 394891843266770919} ExpandFlag: {fileID: 1501213187178026014} +--- !u!1 &4124172888520656882 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3923554087608668260} + - component: {fileID: 8726940611779585913} + m_Layer: 5 + m_Name: content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3923554087608668260 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4124172888520656882} + 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: 6100013163502236362} + m_Father: {fileID: 816049057894123782} + 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 &8726940611779585913 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4124172888520656882} + 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 &4418047983921236589 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 839073477422163140} + 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 &839073477422163140 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4418047983921236589} + 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: 368344292915322445} + m_Father: {fileID: 7336691093202081882} + 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 &4478785627166277609 GameObject: m_ObjectHideFlags: 0 @@ -644,6 +1008,7 @@ RectTransform: m_Children: - {fileID: 8581099496228509946} - {fileID: 2780569438310375802} + - {fileID: 278706555072840209} - {fileID: 2404013603202822047} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -667,6 +1032,7 @@ MonoBehaviour: MenuRoot: {fileID: 4478785627166277610} SelectBorder: {fileID: 7857863493876124730} TEMPLATE_EXECUTEITEM: {fileID: 3721725547312714320} + TEMPLATE_VALUEEDITITEM: {fileID: 2621485483361375335} --- !u!114 &7033441668005100640 MonoBehaviour: m_ObjectHideFlags: 0 @@ -727,6 +1093,392 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!1 &4565892069299376824 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 758531668636581813} + 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 &758531668636581813 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4565892069299376824} + 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: 8431569032797679710} + m_Father: {fileID: 7336691093202081882} + 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.0000153, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &5174902406667317058 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 278706555072840209} + - component: {fileID: 2621485483361375335} + - component: {fileID: 4314371315188452187} + - component: {fileID: 3305626545226455955} + m_Layer: 5 + m_Name: ValueEditItem_Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &278706555072840209 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5174902406667317058} + 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: 2450201408575734812} + - {fileID: 7216060871118576844} + - {fileID: 816049057894123782} + m_Father: {fileID: 4478785627166277610} + 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 &2621485483361375335 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5174902406667317058} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: deae682aaf23cab458cba1b12cd3a1f7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MenuNameTxt: {fileID: 6349204039935213934} + m_Icon: {fileID: 1062489471918314902} + com_floatEdit: {fileID: 3979886008433050043} + com_enumEdit: {fileID: 3614321873420207159} +--- !u!114 &4314371315188452187 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5174902406667317058} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &3305626545226455955 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5174902406667317058} + 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 &5894141955990945432 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2450201408575734812} + - component: {fileID: 6023196883469018230} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2450201408575734812 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5894141955990945432} + 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: 1609320592060400513} + - {fileID: 3877041774025625573} + 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 &6023196883469018230 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5894141955990945432} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 12 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &6312116949113707702 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7216060871118576844} + - component: {fileID: 2814991476448031351} + - component: {fileID: 3979886008433050043} + m_Layer: 5 + m_Name: FloatEdit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7216060871118576844 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6312116949113707702} + 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: 3411987631237892165} + 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 &2814991476448031351 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6312116949113707702} + 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: 50 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &3979886008433050043 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6312116949113707702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c9e9868e38e8ea44a0dad03b987cd73, type: 3} + m_Name: + m_EditorClassIdentifier: + slider: {fileID: 6489571631904078165} + txt_value: {fileID: 6176548475786947694} +--- !u!1 &6669948312920191200 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7336691093202081882} + - component: {fileID: 6489571631904078165} + - component: {fileID: 3374260299666839081} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7336691093202081882 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6669948312920191200} + 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: 9188465998620569872} + - {fileID: 758531668636581813} + - {fileID: 839073477422163140} + m_Father: {fileID: 3411987631237892165} + 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 &6489571631904078165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6669948312920191200} + 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: 5663436025380392551} + m_FillRect: {fileID: 8431569032797679710} + m_HandleRect: {fileID: 368344292915322445} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &3374260299666839081 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6669948312920191200} + 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: 20 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &6998597834321643812 GameObject: m_ObjectHideFlags: 0 @@ -825,3 +1577,492 @@ 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 &8045610840842517781 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 368344292915322445} + - component: {fileID: 2285457357903007277} + - component: {fileID: 5663436025380392551} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &368344292915322445 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8045610840842517781} + 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: 839073477422163140} + 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: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2285457357903007277 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8045610840842517781} + m_CullTransparentMesh: 1 +--- !u!114 &5663436025380392551 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8045610840842517781} + 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: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8171039204203639432 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3411987631237892165} + - component: {fileID: 8534996973105061084} + m_Layer: 5 + m_Name: content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3411987631237892165 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8171039204203639432} + 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: 7336691093202081882} + - {fileID: 1486903153852188972} + m_Father: {fileID: 7216060871118576844} + 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 &8534996973105061084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8171039204203639432} + 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 &8424237890540861109 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9188465998620569872} + - component: {fileID: 1544250115504974858} + - component: {fileID: 4255075450120709843} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9188465998620569872 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8424237890540861109} + 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: 7336691093202081882} + 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 &1544250115504974858 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8424237890540861109} + m_CullTransparentMesh: 1 +--- !u!114 &4255075450120709843 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8424237890540861109} + 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 &8505862672145461347 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8431569032797679710} + - component: {fileID: 5338290108124800152} + - component: {fileID: 51848086538987462} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8431569032797679710 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8505862672145461347} + 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: 758531668636581813} + 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 &5338290108124800152 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8505862672145461347} + m_CullTransparentMesh: 1 +--- !u!114 &51848086538987462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8505862672145461347} + 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 &8608736886725017457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1486903153852188972} + - component: {fileID: 7497419100168238325} + - component: {fileID: 6176548475786947694} + - component: {fileID: 5172613673109503612} + m_Layer: 5 + m_Name: value + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1486903153852188972 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8608736886725017457} + 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: 3411987631237892165} + 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 &7497419100168238325 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8608736886725017457} + m_CullTransparentMesh: 1 +--- !u!114 &6176548475786947694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8608736886725017457} + 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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 99 +--- !u!114 &5172613673109503612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8608736886725017457} + 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 &8884391103430529053 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6100013163502236362} + - component: {fileID: 88244861463061753} + - component: {fileID: 882902782535747463} + - component: {fileID: 7627463212103394575} + m_Layer: 5 + m_Name: value + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6100013163502236362 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8884391103430529053} + 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: 3923554087608668260} + 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 &88244861463061753 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8884391103430529053} + m_CullTransparentMesh: 1 +--- !u!114 &882902782535747463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8884391103430529053} + 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 &7627463212103394575 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8884391103430529053} + 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 diff --git a/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs index 2a728b1..95d9add 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Filter/FilterEffect.cs @@ -26,7 +26,22 @@ namespace AxibugEmuOnline.Client where t.DeclaringType.IsSubclassOf(typeof(FilterEffect)) orderby t.MetadataToken select t); - m_editableParamList = parameters.Select(p => new EditableParamerter(p.Name, (ParameterOverride)p.GetValue(this))).ToList(); + + m_editableParamList = new List(); + foreach (var param in parameters) + { + var paramObj = (ParameterOverride)param.GetValue(this); + var rangeAtt = param.GetCustomAttribute(); + float min = 0; + float max = 10; + if (rangeAtt != null) + { + min = rangeAtt.min; max = rangeAtt.max; + } + + var editableParam = new EditableParamerter(param.Name, paramObj, min, max); + m_editableParamList.Add(editableParam); + } } public class EditableParamerter @@ -42,9 +57,13 @@ namespace AxibugEmuOnline.Client set { valueFieldInfo.SetValue(m_paramObject, value); + m_paramObject.overrideState = true; } } - public EditableParamerter(string name, ParameterOverride paramObject) + public object MinValue { get; private set; } + public object MaxValue { get; private set; } + + public EditableParamerter(string name, ParameterOverride paramObject, object minValue, object maxValue) { m_paramObject = paramObject; Name = name; @@ -60,18 +79,16 @@ namespace AxibugEmuOnline.Client { ValueType = typeof(object); } + + MinValue = minValue; + MaxValue = maxValue; } public void ResetToDefault() => m_paramObject.overrideState = false; - public string Serilized() - { - return JsonUtility.ToJson(Value); - } - public void Apply(string json) + public void Apply(object overrideValue) { - var overrideValue = JsonUtility.FromJson(json, ValueType); Value = overrideValue; } } diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs index 1f61f48..72d7720 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Manager/FilterManager.cs @@ -1,4 +1,5 @@ -using System; +using AxibugEmuOnline.Client.ClientCore; +using System; using System.Collections.Generic; using System.Linq; using UnityEngine; @@ -94,7 +95,8 @@ namespace AxibugEmuOnline.Client filter = Filters.FirstOrDefault(f => f.Name == value.filterName); if (filter != null) { - preset = filter.Presets.FirstOrDefault(p => p.Name == value.filterName); + string presetName = value.presetName; + preset = filter.Presets.FirstOrDefault(p => p.Name == presetName); } return (filter, preset); @@ -126,9 +128,9 @@ namespace AxibugEmuOnline.Client else Presets = loadedPresets.presets; } - private void savePresets() + public void SavePresets() { - var json = JsonUtility.ToJson(new FilterPresetList { presets = Presets }); + var json = JsonUtility.ToJson(new FilterPresetList(Presets)); PlayerPrefs.SetString($"Filter_{Name}_PresetList", json); } @@ -141,7 +143,7 @@ namespace AxibugEmuOnline.Client newPreset = new FilterPreset(presetName); Presets.Add(newPreset); - savePresets(); + SavePresets(); return true; } @@ -149,7 +151,7 @@ namespace AxibugEmuOnline.Client public void RemovePreset(FilterPreset preset) { if (!Presets.Remove(preset)) return; - savePresets(); + SavePresets(); EventInvoker.RaiseFilterPresetRemoved(this, preset); } @@ -166,11 +168,11 @@ namespace AxibugEmuOnline.Client { foreach (var param in Paramerters) { - var json = preset.GetParamValueJson(param.Name); - if (string.IsNullOrEmpty(json)) + var value = preset.GetParamValue(param.Name, param.ValueType); + if (value == null) param.ResetToDefault(); else - param.Apply(json); + param.Apply(value); } } @@ -182,6 +184,15 @@ namespace AxibugEmuOnline.Client private class FilterPresetList { public List presets; + + public FilterPresetList(List presets) + { + this.presets = presets; + foreach (var preset in presets) + { + preset.ReadyForJson(); + } + } } [Serializable] @@ -201,6 +212,12 @@ namespace AxibugEmuOnline.Client Name = presetName; } + public void ReadyForJson() + { + m_paramName = m_paramName2ValueJson.Keys.ToList(); + m_valueJson = m_paramName2ValueJson.Values.ToList(); + } + public string GetParamValueJson(string paramName) { prepareCache(); @@ -209,6 +226,34 @@ namespace AxibugEmuOnline.Client return value; } + public object GetParamValue(string paramName, Type valueType) + { + var rawStr = GetParamValueJson(paramName); + if (rawStr == null) return null; + + if (valueType == typeof(float)) + { + float.TryParse(rawStr, out var floatVal); + return floatVal; + } + else if (valueType.IsEnum) + { + Enum.TryParse(valueType, rawStr,out var enumValue); + return enumValue; + } + else + { + App.log.Error($"尚未支持的滤镜参数类型{valueType}"); + return null; + } + } + + public void SetParamValue(string paramName, Type valueType, object value) + { + prepareCache(); + m_paramName2ValueJson[paramName] = value.ToString(); + } + private void prepareCache() { if (m_cacheReady) return; diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs index eb7952e..562f067 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/BgSettingsUI/UI_FilterItem.cs @@ -1,5 +1,6 @@ using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.UI; +using System; using System.Collections.Generic; using System.Linq; using UnityEngine; @@ -88,12 +89,16 @@ namespace AxibugEmuOnline.Client private Filter m_filter; private FilterPreset m_preset; private OptionUI_MenuItem m_ui; + private List m_menu; public Opt_Presets(Filter filter, FilterPreset preset) : base(preset.Name, null) { m_filter = filter; m_preset = preset; + m_menu = new List(); + m_menu.Add(new Opt_Delete(m_filter, m_preset)); + foreach (var p in m_filter.Paramerters) m_menu.Add(new Opt_ParamEditor(m_filter, p, m_preset)); } public override void OnShow(OptionUI_MenuItem ui) @@ -122,7 +127,37 @@ namespace AxibugEmuOnline.Client protected override List GetOptionMenus() { - return new List { new Opt_Delete(m_filter, m_preset) }; + return m_menu; + } + + public class Opt_ParamEditor : ValueSetMenu + { + private Filter m_filter; + private FilterEffect.EditableParamerter m_param; + private FilterPreset m_preset; + + public Opt_ParamEditor(Filter filter, FilterEffect.EditableParamerter editParam, FilterPreset preset) + : base(editParam.Name) + { + m_filter = filter; + m_param = editParam; + m_preset = preset; + } + + public override Type ValueType => m_param.ValueType; + + public override object ValueRaw => m_preset.GetParamValue(m_param.Name, ValueType) ?? m_param.Value; + + public override void OnValueChanged(object newValue) + { + m_preset.SetParamValue(m_param.Name, ValueType, newValue); + m_filter.SavePresets(); + m_param.Apply(newValue); + } + + public override object Min => m_param.MinValue; + + public override object Max => m_param.MaxValue; } public class Opt_Delete : ExecuteMenu @@ -141,6 +176,8 @@ namespace AxibugEmuOnline.Client m_filter.RemovePreset(m_preset); } } + + } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs index 620d8a9..1fcdf22 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs @@ -15,6 +15,7 @@ namespace AxibugEmuOnline.Client [Space] [Header("ģ")] [SerializeField] OptionUI_ExecuteItem TEMPLATE_EXECUTEITEM; + [SerializeField] OptionUI_ValueEditItem TEMPLATE_VALUEEDITITEM; private OptionUI m_child; private OptionUI m_parent; @@ -64,6 +65,8 @@ namespace AxibugEmuOnline.Client protected override void Awake() { TEMPLATE_EXECUTEITEM.gameObject.SetActiveEx(false); + TEMPLATE_VALUEEDITITEM.gameObject.SetActiveEx(false); + SelectBorder.gameObject.SetActiveEx(false); base.Awake(); } @@ -269,15 +272,19 @@ namespace AxibugEmuOnline.Client { if (menuData is ExecuteMenu executeMenu) { - var menuUI = GameObject.Instantiate(TEMPLATE_EXECUTEITEM.gameObject, TEMPLATE_EXECUTEITEM.transform.parent).GetComponent(); + var menuUI = Instantiate(TEMPLATE_EXECUTEITEM.gameObject, TEMPLATE_EXECUTEITEM.transform.parent).GetComponent(); menuUI.gameObject.SetActive(true); menuUI.SetData(this, executeMenu); m_runtimeMenuItems.Add(menuUI); } - else + else if (menuData is ValueSetMenu valueSetMenu) { - throw new NotImplementedException($"ݲֵ֧IJ˵{menuData.GetType().Name}"); + var menuUI = Instantiate(TEMPLATE_VALUEEDITITEM.gameObject, TEMPLATE_VALUEEDITITEM.transform.parent).GetComponent(); + menuUI.gameObject.SetActive(true); + menuUI.SetData(this, valueSetMenu); + m_runtimeMenuItems.Add(menuUI); } + else throw new NotImplementedException($"ݲֵ֧IJ˵{menuData.GetType().Name}"); } private void ReleaseRuntimeMenus() @@ -305,10 +312,23 @@ namespace AxibugEmuOnline.Client Hide(); } + protected override void OnCmdSelectItemLeft() + { + var executer = m_runtimeMenuItems[SelectIndex]; + if (executer != null) + { + executer.OnLeft(); + } + } + protected override void OnCmdSelectItemRight() { var executer = m_runtimeMenuItems[SelectIndex]; - if (!executer.IsExpandMenu) return; + if (!executer.IsExpandMenu) + { + executer.OnRight(); + return; + } OnCmdEnter(); } @@ -384,25 +404,6 @@ namespace AxibugEmuOnline.Client protected abstract List GetOptionMenus(); } - /// - /// ֵʾͱ༭IJ˵ - /// - /// - public class ValueSetMenu : ValueSetMenu - { - public sealed override Type ValueType => typeof(T); - - public T Value { get; private set; } - - public sealed override object ValueRaw => Value; - - public sealed override void OnValueChanged(object newValue) - { - Value = (T)newValue; - } - protected ValueSetMenu(string name) : base(name) { } - } - /// ҪֱӼ̳ public abstract class OptionMenu { @@ -421,7 +422,9 @@ namespace AxibugEmuOnline.Client public virtual void OnShow(OptionUI_MenuItem ui) { } public virtual void OnHide() { } } - /// ҪֱӼ̳ + /// + /// ֵʾͱ༭IJ˵ + /// public abstract class ValueSetMenu : OptionMenu { public ValueSetMenu(string name) : base(name) { } @@ -429,7 +432,7 @@ namespace AxibugEmuOnline.Client public abstract Type ValueType { get; } public abstract object ValueRaw { get; } public abstract void OnValueChanged(object newValue); + public abstract object Min { get; } + public abstract object Max { get; } } - - } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_MenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_MenuItem.cs index 5b3203f..f3ae05b 100644 --- a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_MenuItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_MenuItem.cs @@ -35,6 +35,8 @@ namespace AxibugEmuOnline.Client protected abstract void OnSetData(OptionMenu menuData); public abstract void OnExecute(OptionUI optionUI, ref bool cancelHide); + public virtual void OnLeft() { } + public virtual void OnRight() { } public abstract void OnFocus(); public virtual void OnHide() { } } diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem.cs new file mode 100644 index 0000000..9c88a3f --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem.cs @@ -0,0 +1,69 @@ +using AxibugEmuOnline.Client.ClientCore; +using UnityEngine; + +namespace AxibugEmuOnline.Client +{ + public class OptionUI_ValueEditItem : OptionUI_MenuItem + { + [SerializeField] + OptionUI_ValueEditItem_FloatEdit com_floatEdit; + [SerializeField] + OptionUI_ValueEditItem_EnumEdit com_enumEdit; + + IValueEditControl m_currentCom; + + protected override void OnSetData(OptionMenu menuData) + { + com_floatEdit.gameObject.SetActive(false); + com_enumEdit.gameObject.SetActive(false); + + if (menuData is ValueSetMenu valueMenu) + { + if (valueMenu.ValueType == typeof(float)) + { + m_currentCom = com_floatEdit; + } + else if (valueMenu.ValueType.IsEnum) + { + m_currentCom = com_enumEdit; + } + else + { + App.log.Error($"δֵ֧:{valueMenu.ValueType}"); + return; + } + + + m_currentCom.gameObject.SetActiveEx(true); + m_currentCom.SetData(valueMenu); + } + + base.OnSetData(menuData); + } + + public override void OnExecute(OptionUI optionUI, ref bool cancelHide) + { + cancelHide = true; + m_currentCom?.OnExecute(); + } + + public override void OnLeft() + { + m_currentCom?.OnLeft(); + } + + public override void OnRight() + { + m_currentCom?.OnRight(); + } + } + + public interface IValueEditControl + { + void SetData(ValueSetMenu valueMenu); + GameObject gameObject { get; } + void OnLeft(); + void OnRight(); + void OnExecute(); + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem.cs.meta new file mode 100644 index 0000000..4b7744c --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: deae682aaf23cab458cba1b12cd3a1f7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_EnumEdit.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_EnumEdit.cs new file mode 100644 index 0000000..6b5f6fe --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_EnumEdit.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace AxibugEmuOnline.Client +{ + public class OptionUI_ValueEditItem_EnumEdit : MonoBehaviour, IValueEditControl + { + [SerializeField] + Text txt_value; + + private ValueSetMenu m_valueMenu; + private List m_enumValues = new List(); + private int m_valueIndex; + + public void SetData(ValueSetMenu valueMenu) + { + m_valueMenu = valueMenu; + txt_value.text = valueMenu.ValueRaw.ToString(); + + foreach (Enum enumValue in Enum.GetValues(valueMenu.ValueType)) + { + m_enumValues.Add(enumValue); + } + m_valueIndex = m_enumValues.IndexOf((Enum)valueMenu.ValueRaw); + } + + public void OnLeft() + { + m_valueIndex--; + + if (m_valueIndex < 0) m_valueIndex = m_enumValues.Count - 1; + + var value = m_enumValues[m_valueIndex]; + txt_value.text = value.ToString(); + m_valueMenu.OnValueChanged(value); + } + + public void OnRight() + { + m_valueIndex++; + + if (m_valueIndex >= m_enumValues.Count) m_valueIndex = 0; + + var value = m_enumValues[m_valueIndex]; + txt_value.text = value.ToString(); + m_valueMenu.OnValueChanged(value); + } + + public void OnExecute() + { + OnRight(); + } + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_EnumEdit.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_EnumEdit.cs.meta new file mode 100644 index 0000000..78cb595 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_EnumEdit.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ef1018f09e7c5b049b75128ee308d372 diff --git a/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_FloatEdit.cs b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_FloatEdit.cs new file mode 100644 index 0000000..bd1a3ab --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_FloatEdit.cs @@ -0,0 +1,53 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace AxibugEmuOnline.Client +{ + public class OptionUI_ValueEditItem_FloatEdit : MonoBehaviour, IValueEditControl + { + [SerializeField] + Slider slider; + [SerializeField] + Text txt_value; + + float m_step; + private ValueSetMenu m_valueMenu; + + private void Awake() + { + slider.onValueChanged.AddListener(OnSliderValueChanged); + } + + private void OnSliderValueChanged(float value) + { + txt_value.text = $"{value:.00}"; + m_valueMenu.OnValueChanged(value); + } + + public void SetData(ValueSetMenu valueMenu) + { + m_valueMenu = valueMenu; + slider.minValue = (float)valueMenu.Min; + slider.maxValue = (float)valueMenu.Max; + slider.value = (float)valueMenu.ValueRaw; + m_step = (slider.maxValue - slider.minValue) * 0.05f; + } + + 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/UI/OptionUI/OptionUI_ValueEditItem_FloatEdit.cs.meta b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_FloatEdit.cs.meta new file mode 100644 index 0000000..44c37b3 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI_ValueEditItem_FloatEdit.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8c9e9868e38e8ea44a0dad03b987cd73 \ No newline at end of file