接入菜单导航并改造通用按钮交互

- 将 CommonButton 改为基于 Unity Button 实现,保留原有 pointer enter、click、pointer exit 三类事件配置,同时接入 Selectable/Button 的导航、选中和提交能力。补充 CommonButton 自定义 Inspector,保留项目自定义事件与背景配置的编辑体验。

- 同步调整菜单相关 UI,将 StartMenuForm 迁移为 MenuForm,并更新 UIForm 配置、菜单 Controller/Form 以及相关 prefab 引用。更新多个 UI prefab 和通用按钮 prefab,使菜单、商店、角色选择、道具展示等界面能够使用新的按钮选中与导航交互。
This commit is contained in:
SepComet
2026-06-16 17:09:20 +08:00
committed by basil
parent 21d0b410b6
commit 1cd3936f49
18 changed files with 1022 additions and 245 deletions
+261 -117
View File
@@ -857,26 +857,40 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a5079836f95c2a44b96fa331487ebb70, type: 3}
m_Name:
m_EditorClassIdentifier:
m_OnHover:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 10000
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
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: 0}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
@@ -887,8 +901,8 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UIModule.GameUI.DialogForm, SepC.UIModule.GameUI
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.DialogForm, SepCore.Presentation
m_MethodName: OnConfirmButtonClick
m_Mode: 1
m_Arguments:
@@ -899,6 +913,16 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
_background: {fileID: 11426380}
_onPointerEnterAction:
m_PersistentCalls:
m_Calls: []
_onClickAction:
m_PersistentCalls:
m_Calls: []
_onPointerExitAction:
m_PersistentCalls:
m_Calls: []
--- !u!1 &125418
GameObject:
m_ObjectHideFlags: 0
@@ -985,7 +1009,7 @@ GameObject:
- component: {fileID: 22498214}
- component: {fileID: 22269018}
- component: {fileID: 22354136}
- component: {fileID: 8328317774963448969}
- component: {fileID: 8310015081728058196}
m_Layer: 5
m_Name: DialogForm
m_TagString: Untagged
@@ -1044,7 +1068,7 @@ Canvas:
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &8328317774963448969
--- !u!114 &8310015081728058196
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -1053,7 +1077,7 @@ MonoBehaviour:
m_GameObject: {fileID: 128074}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6cdade95ec8f34540b4be99a03ecefb9, type: 3}
m_Script: {fileID: 11500000, guid: e75b6daf7a6651845bdbc6cf9dcaa400, type: 3}
m_Name:
m_EditorClassIdentifier:
_titleText: {fileID: 8529908876024288455}
@@ -1205,26 +1229,40 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a5079836f95c2a44b96fa331487ebb70, type: 3}
m_Name:
m_EditorClassIdentifier:
m_OnHover:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 10000
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
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: 0}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
@@ -1235,8 +1273,8 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UIModule.GameUI.DialogForm, SepC.UIModule.GameUI
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.DialogForm, SepCore.Presentation
m_MethodName: OnCancelButtonClick
m_Mode: 1
m_Arguments:
@@ -1247,6 +1285,16 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
_background: {fileID: 11483494}
_onPointerEnterAction:
m_PersistentCalls:
m_Calls: []
_onClickAction:
m_PersistentCalls:
m_Calls: []
_onPointerExitAction:
m_PersistentCalls:
m_Calls: []
--- !u!1 &143604
GameObject:
m_ObjectHideFlags: 0
@@ -1306,26 +1354,40 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a5079836f95c2a44b96fa331487ebb70, type: 3}
m_Name:
m_EditorClassIdentifier:
m_OnHover:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 10000
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
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: 0}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
@@ -1336,8 +1398,8 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UIModule.GameUI.DialogForm, SepC.UIModule.GameUI
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.DialogForm, SepCore.Presentation
m_MethodName: OnOtherButtonClick
m_Mode: 1
m_Arguments:
@@ -1348,6 +1410,16 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
_background: {fileID: 11414520}
_onPointerEnterAction:
m_PersistentCalls:
m_Calls: []
_onClickAction:
m_PersistentCalls:
m_Calls: []
_onPointerExitAction:
m_PersistentCalls:
m_Calls: []
--- !u!1 &151362
GameObject:
m_ObjectHideFlags: 0
@@ -1804,26 +1876,40 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a5079836f95c2a44b96fa331487ebb70, type: 3}
m_Name:
m_EditorClassIdentifier:
m_OnHover:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 10000
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
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: 0}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
@@ -1834,8 +1920,8 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UIModule.GameUI.DialogForm, SepC.UIModule.GameUI
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.DialogForm, SepCore.Presentation
m_MethodName: OnConfirmButtonClick
m_Mode: 1
m_Arguments:
@@ -1846,6 +1932,16 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
_background: {fileID: 11465964}
_onPointerEnterAction:
m_PersistentCalls:
m_Calls: []
_onClickAction:
m_PersistentCalls:
m_Calls: []
_onPointerExitAction:
m_PersistentCalls:
m_Calls: []
--- !u!1 &170296
GameObject:
m_ObjectHideFlags: 0
@@ -2039,26 +2135,40 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a5079836f95c2a44b96fa331487ebb70, type: 3}
m_Name:
m_EditorClassIdentifier:
m_OnHover:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 10000
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
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: 0}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
@@ -2069,8 +2179,8 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UIModule.GameUI.DialogForm, SepC.UIModule.GameUI
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.DialogForm, SepCore.Presentation
m_MethodName: OnCancelButtonClick
m_Mode: 1
m_Arguments:
@@ -2081,6 +2191,16 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
_background: {fileID: 11425690}
_onPointerEnterAction:
m_PersistentCalls:
m_Calls: []
_onClickAction:
m_PersistentCalls:
m_Calls: []
_onPointerExitAction:
m_PersistentCalls:
m_Calls: []
--- !u!1 &174596
GameObject:
m_ObjectHideFlags: 0
@@ -2392,26 +2512,40 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a5079836f95c2a44b96fa331487ebb70, type: 3}
m_Name:
m_EditorClassIdentifier:
m_OnHover:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 10000
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
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: 0}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UI.UGuiForm, SepCore.Runtime
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.UGuiForm, SepCore.Runtime
m_MethodName: PlayUISound
m_Mode: 3
m_Arguments:
@@ -2422,8 +2556,8 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 8328317774963448969}
m_TargetAssemblyTypeName: SepC.UIModule.GameUI.DialogForm, SepC.UIModule.GameUI
- m_Target: {fileID: 8310015081728058196}
m_TargetAssemblyTypeName: SepCore.UI.DialogForm, SepCore.Presentation
m_MethodName: OnConfirmButtonClick
m_Mode: 1
m_Arguments:
@@ -2434,6 +2568,16 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
_background: {fileID: 11445860}
_onPointerEnterAction:
m_PersistentCalls:
m_Calls: []
_onClickAction:
m_PersistentCalls:
m_Calls: []
_onPointerExitAction:
m_PersistentCalls:
m_Calls: []
--- !u!1 &199804
GameObject:
m_ObjectHideFlags: 0