fix: 修复ExperimentPanel按钮无响应问题,新增OnExperimentBackClicked回调,清理遗留的BtnFixationBack显隐逻辑

This commit is contained in:
yangbear
2026-06-25 04:55:41 +08:00
parent b775d9f179
commit b999148a0e
2 changed files with 438 additions and 26 deletions
+419 -7
View File
@@ -213,6 +213,7 @@ GameObject:
- component: {fileID: 37271318} - component: {fileID: 37271318}
- component: {fileID: 37271317} - component: {fileID: 37271317}
- component: {fileID: 37271316} - component: {fileID: 37271316}
- component: {fileID: 37271320}
m_Layer: 0 m_Layer: 0
m_Name: Bandage m_Name: Bandage
m_TagString: Bandage m_TagString: Bandage
@@ -306,6 +307,29 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &37271320
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 37271315}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cbf0e86605f7b485f8ff25c5810d30c0, type: 3}
m_Name:
m_EditorClassIdentifier:
IsDraggable: 1
SnapTarget: {fileID: 0}
OnDragStartEvent:
m_PersistentCalls:
m_Calls: []
OnDragEndEvent:
m_PersistentCalls:
m_Calls: []
OnSnappedEvent:
m_PersistentCalls:
m_Calls: []
--- !u!1 &96184418 --- !u!1 &96184418
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -318,6 +342,7 @@ GameObject:
- component: {fileID: 96184421} - component: {fileID: 96184421}
- component: {fileID: 96184420} - component: {fileID: 96184420}
- component: {fileID: 96184419} - component: {fileID: 96184419}
- component: {fileID: 96184423}
m_Layer: 0 m_Layer: 0
m_Name: Splint m_Name: Splint
m_TagString: Splint m_TagString: Splint
@@ -411,6 +436,29 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &96184423
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 96184418}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cbf0e86605f7b485f8ff25c5810d30c0, type: 3}
m_Name:
m_EditorClassIdentifier:
IsDraggable: 1
SnapTarget: {fileID: 0}
OnDragStartEvent:
m_PersistentCalls:
m_Calls: []
OnDragEndEvent:
m_PersistentCalls:
m_Calls: []
OnSnappedEvent:
m_PersistentCalls:
m_Calls: []
--- !u!1 &153434359 --- !u!1 &153434359
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -550,7 +598,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &188350343 --- !u!224 &188350343
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -652,6 +700,82 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 188350342} m_GameObject: {fileID: 188350342}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &200058300
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 200058301}
- component: {fileID: 200058303}
- component: {fileID: 200058302}
m_Layer: 0
m_Name: ExperimentPanel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &200058301
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 200058300}
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: 617526393}
m_Father: {fileID: 1642393469}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0.00016403, y: 0.0000095367}
m_SizeDelta: {x: 2094.7, y: 1080}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &200058302
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 200058300}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &200058303
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 200058300}
m_CullTransparentMesh: 1
--- !u!1 &227678438 --- !u!1 &227678438
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2174,6 +2298,126 @@ SphereCollider:
serializedVersion: 3 serializedVersion: 3
m_Radius: 0.15 m_Radius: 0.15
m_Center: {x: 0, y: 0, z: 0} m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &617526392
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 617526393}
- component: {fileID: 617526396}
- component: {fileID: 617526395}
- component: {fileID: 617526394}
m_Layer: 0
m_Name: BtnBack
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &617526393
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 617526392}
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: 200058301}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 788.9999, y: 410.9999}
m_SizeDelta: {x: 101, y: 101}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &617526394
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 617526392}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 1
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: 617526395}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &617526395
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 617526392}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 768da18ab8d354e999b2d5839b6ff918, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &617526396
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 617526392}
m_CullTransparentMesh: 1
--- !u!1 &672149916 --- !u!1 &672149916
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2186,6 +2430,7 @@ GameObject:
- component: {fileID: 672149919} - component: {fileID: 672149919}
- component: {fileID: 672149918} - component: {fileID: 672149918}
- component: {fileID: 672149917} - component: {fileID: 672149917}
- component: {fileID: 672149921}
m_Layer: 0 m_Layer: 0
m_Name: Shoe m_Name: Shoe
m_TagString: Shoe m_TagString: Shoe
@@ -2279,6 +2524,29 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &672149921
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 672149916}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cbf0e86605f7b485f8ff25c5810d30c0, type: 3}
m_Name:
m_EditorClassIdentifier:
IsDraggable: 1
SnapTarget: {fileID: 0}
OnDragStartEvent:
m_PersistentCalls:
m_Calls: []
OnDragEndEvent:
m_PersistentCalls:
m_Calls: []
OnSnappedEvent:
m_PersistentCalls:
m_Calls: []
--- !u!1 &717077354 --- !u!1 &717077354
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -4137,6 +4405,126 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1285985825} m_GameObject: {fileID: 1285985825}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1329058527
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1329058528}
- component: {fileID: 1329058531}
- component: {fileID: 1329058530}
- component: {fileID: 1329058529}
m_Layer: 0
m_Name: BtnBack
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1329058528
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1329058527}
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: 1813870030}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 788.9999, y: 410.9999}
m_SizeDelta: {x: 101, y: 101}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1329058529
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1329058527}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 1
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: 1329058530}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &1329058530
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1329058527}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 768da18ab8d354e999b2d5839b6ff918, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1329058531
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1329058527}
m_CullTransparentMesh: 1
--- !u!1 &1364120476 --- !u!1 &1364120476
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -5215,7 +5603,7 @@ MonoBehaviour:
m_ScaleFactor: 1 m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080} m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0 m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0.5 m_MatchWidthOrHeight: 1
m_PhysicalUnit: 3 m_PhysicalUnit: 3
m_FallbackScreenDPI: 96 m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96 m_DefaultSpriteDPI: 96
@@ -5266,6 +5654,7 @@ RectTransform:
- {fileID: 818830065} - {fileID: 818830065}
- {fileID: 1812357847} - {fileID: 1812357847}
- {fileID: 1813870030} - {fileID: 1813870030}
- {fileID: 200058301}
- {fileID: 188350343} - {fileID: 188350343}
- {fileID: 1037678402} - {fileID: 1037678402}
- {fileID: 1819847501} - {fileID: 1819847501}
@@ -5283,7 +5672,7 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1642393464} m_GameObject: {fileID: 1642393464}
m_Enabled: 0 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 11edd93e0776546a3b8545535d7dd5e1, type: 3} m_Script: {fileID: 11500000, guid: 11edd93e0776546a3b8545535d7dd5e1, type: 3}
m_Name: m_Name:
@@ -5544,9 +5933,10 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 1679262202} - component: {fileID: 1679262202}
- component: {fileID: 1679262203}
m_Layer: 0 m_Layer: 0
m_Name: Ground m_Name: Ground
m_TagString: Untagged m_TagString: Ground
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
@@ -5568,6 +5958,27 @@ Transform:
- {fileID: 1836867098} - {fileID: 1836867098}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &1679262203
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1679262201}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &1699839558 --- !u!1 &1699839558
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -6087,12 +6498,13 @@ RectTransform:
m_Children: m_Children:
- {fileID: 1913973801} - {fileID: 1913973801}
- {fileID: 1015007395} - {fileID: 1015007395}
- {fileID: 1329058528}
m_Father: {fileID: 1642393469} m_Father: {fileID: 1642393469}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0.00016403, y: 0.0000095367}
m_SizeDelta: {x: 2005.4, y: 1034.1} m_SizeDelta: {x: 2094.7, y: 1080}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1813870031 --- !u!114 &1813870031
MonoBehaviour: MonoBehaviour:
@@ -6225,7 +6637,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &1819847501 --- !u!224 &1819847501
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
+19 -19
View File
@@ -1,10 +1,6 @@
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
/// <summary>
/// 管理首页 -> 模式选择页 -> 固定方式选择页 -> 实验界面 的切换。
/// 挂在 Canvas 上,与 UIManager 协同工作。
/// </summary>
public class PageController : MonoBehaviour public class PageController : MonoBehaviour
{ {
[Header("=== 三个主页面 ===")] [Header("=== 三个主页面 ===")]
@@ -12,6 +8,10 @@ public class PageController : MonoBehaviour
[SerializeField] private GameObject _modeSelectPanel; [SerializeField] private GameObject _modeSelectPanel;
[SerializeField] private GameObject _fixationPanel; [SerializeField] private GameObject _fixationPanel;
[Header("=== 实验页面 ===")]
[SerializeField] private GameObject _experimentPanel;
[SerializeField] private Button _btnExperimentBack;
[Header("=== 实验内 UI(由 UIManager 管理)===")] [Header("=== 实验内 UI(由 UIManager 管理)===")]
[SerializeField] private UIManager _uiManager; [SerializeField] private UIManager _uiManager;
@@ -32,14 +32,13 @@ public class PageController : MonoBehaviour
[Header("=== 模式说明文案 ===")] [Header("=== 模式说明文案 ===")]
[SerializeField] [TextArea(2, 4)] private string _practiceModeDesc = [SerializeField] [TextArea(2, 4)] private string _practiceModeDesc =
"模拟练习模式:不限时长,可反复练习。系统不评分,帮助您熟悉实验流程和操作步骤。"; "模拟练习模式:不限时长,可反复练习。系统不评分,帮助您熟悉实验流程和操作步骤。";
[SerializeField] [TextArea(2, 4)] private string _examModeDesc = [SerializeField] [TextArea(2, 4)] private string _examModeDesc =
"考核评估模式:限定时间,完成后系统自动评分,并提供详细反馈报告。"; "考核评估模式:限定时间,完成后系统自动评分,并提供详细反馈报告。";
[Header("=== 编辑器预览(仅 Editor 模式有效)===")] [Header("=== 编辑器预览(仅 Editor 模式有效)===")]
[SerializeField] private EditorPreviewPage _editorPreview = EditorPreviewPage.None; [SerializeField] private EditorPreviewPage _editorPreview = EditorPreviewPage.None;
// Page 枚举改为 publicInspector 中可通过 _editorPreview 切换
public enum Page { Home, ModeSelect, Fixation, Experiment } public enum Page { Home, ModeSelect, Fixation, Experiment }
public enum EditorPreviewPage { None, Home, ModeSelect, Fixation, Experiment } public enum EditorPreviewPage { None, Home, ModeSelect, Fixation, Experiment }
@@ -62,6 +61,9 @@ public class PageController : MonoBehaviour
if (_btnLimbFixation != null) _btnLimbFixation.onClick.AddListener(() => OnFixationSelected(FixationMethod.LimbFixation)); if (_btnLimbFixation != null) _btnLimbFixation.onClick.AddListener(() => OnFixationSelected(FixationMethod.LimbFixation));
if (_btnSplintFixation != null) _btnSplintFixation.onClick.AddListener(() => OnFixationSelected(FixationMethod.SplintFixation)); if (_btnSplintFixation != null) _btnSplintFixation.onClick.AddListener(() => OnFixationSelected(FixationMethod.SplintFixation));
// 绑定实验页面按钮
if (_btnExperimentBack != null) _btnExperimentBack.onClick.AddListener(OnExperimentBackClicked);
// 初始化模式说明文字 // 初始化模式说明文字
if (_modeDescText != null) if (_modeDescText != null)
{ {
@@ -73,15 +75,10 @@ public class PageController : MonoBehaviour
} }
#if UNITY_EDITOR #if UNITY_EDITOR
/// <summary>
/// 在 Inspector 中修改 _editorPreview 下拉框时,立即切换 Scene View 中显示的页面,
/// 方便编辑不同页面的 UI 布局。仅在非运行状态下生效。
/// </summary>
private void OnValidate() private void OnValidate()
{ {
if (Application.isPlaying) return; if (Application.isPlaying) return;
// 延迟一帧执行,避免在序列化过程中修改场景导致警告
UnityEditor.EditorApplication.delayCall += () => UnityEditor.EditorApplication.delayCall += () =>
{ {
if (this == null) return; if (this == null) return;
@@ -90,7 +87,6 @@ public class PageController : MonoBehaviour
switch (_editorPreview) switch (_editorPreview)
{ {
case EditorPreviewPage.None: case EditorPreviewPage.None:
// 不做任何切换,保留当前状态
break; break;
case EditorPreviewPage.Home: case EditorPreviewPage.Home:
ShowPageEditMode(Page.Home); ShowPageEditMode(Page.Home);
@@ -106,7 +102,6 @@ public class PageController : MonoBehaviour
break; break;
} }
// 切换完成后重置为 None,避免与后续操作冲突
_editorPreview = EditorPreviewPage.None; _editorPreview = EditorPreviewPage.None;
}; };
} }
@@ -116,6 +111,7 @@ public class PageController : MonoBehaviour
if (_homePagePanel != null) _homePagePanel.SetActive(page == Page.Home); if (_homePagePanel != null) _homePagePanel.SetActive(page == Page.Home);
if (_modeSelectPanel != null) _modeSelectPanel.SetActive(page == Page.ModeSelect); if (_modeSelectPanel != null) _modeSelectPanel.SetActive(page == Page.ModeSelect);
if (_fixationPanel != null) _fixationPanel.SetActive(page == Page.Fixation); if (_fixationPanel != null) _fixationPanel.SetActive(page == Page.Fixation);
if (_experimentPanel != null) _experimentPanel.SetActive(page == Page.Experiment);
if (_uiManager != null) if (_uiManager != null)
_uiManager.enabled = (page == Page.Experiment); _uiManager.enabled = (page == Page.Experiment);
@@ -126,14 +122,14 @@ public class PageController : MonoBehaviour
#region #region
private void ShowPage(Page page) private void ShowPage(Page page)
{ {
_currentPage = page; _currentPage = page;
if (_homePagePanel != null) _homePagePanel.SetActive(page == Page.Home); if (_homePagePanel != null) _homePagePanel.SetActive(page == Page.Home);
if (_modeSelectPanel != null) _modeSelectPanel.SetActive(page == Page.ModeSelect); if (_modeSelectPanel != null) _modeSelectPanel.SetActive(page == Page.ModeSelect);
if (_fixationPanel != null) _fixationPanel.SetActive(page == Page.Fixation); if (_fixationPanel != null) _fixationPanel.SetActive(page == Page.Fixation);
if (_btnFixationBack != null) _btnFixationBack.gameObject.SetActive(page == Page.Fixation); if (_experimentPanel != null) _experimentPanel.SetActive(page == Page.Experiment);
if (_uiManager != null) if (_uiManager != null)
_uiManager.enabled = (page == Page.Experiment); _uiManager.enabled = (page == Page.Experiment);
@@ -168,8 +164,8 @@ public class PageController : MonoBehaviour
if (_modeDescText != null) if (_modeDescText != null)
{ {
_modeDescText.text = mode == ExperimentMode.Learn _modeDescText.text = mode == ExperimentMode.Learn
? _practiceModeDesc + "\n\n 当前已选择「模拟练习模式」" ? _practiceModeDesc + "\n\n 当前已选择「模拟练习模式」"
: _examModeDesc + "\n\n 当前已选择「考核评估模式」"; : _examModeDesc + "\n\n 当前已选择「考核评估模式」";
} }
ShowPage(Page.Fixation); ShowPage(Page.Fixation);
@@ -185,6 +181,11 @@ public class PageController : MonoBehaviour
ShowPage(Page.ModeSelect); ShowPage(Page.ModeSelect);
} }
private void OnExperimentBackClicked()
{
ShowPage(Page.Fixation);
}
private void OnFixationSelected(FixationMethod method) private void OnFixationSelected(FixationMethod method)
{ {
var gm = GameManager.Instance; var gm = GameManager.Instance;
@@ -211,6 +212,5 @@ public class PageController : MonoBehaviour
ShowPage(Page.Home); ShowPage(Page.Home);
} }
#endregion #endregion
} }