Move buttons to HUD Manager

This commit is contained in:
Michal Pikulski
2025-11-09 13:23:03 +01:00
parent a80aed8eb7
commit 0c9a388433
18 changed files with 2326 additions and 3998 deletions

View File

@@ -18,13 +18,10 @@ MonoBehaviour:
- {fileID: 458265635552197097, guid: a77d1e8b2fa8aa945a6f39b312536e0d, type: 3}
- {fileID: 552225285624929822, guid: e39992796d5459442be9967c77e27066, type: 3}
- {fileID: 7644433920135100480, guid: 12d242e44fe80ab44af852254b7cab0f, type: 3}
- {fileID: 1794231825201849485, guid: 6fb0d7fc6faad154b8c3e3cb7abb7c15, type: 3}
- {fileID: 6399527186463168339, guid: ac41583865245bc4bb3de6c15929b9fc, type: 3}
- {fileID: 2755712733105741372, guid: 70e6fca1164d9a140b271f4261f1f023, type: 3}
- {fileID: 5034240524438268576, guid: adbb9bfd5489f3f4995966535ca5f24b, type: 3}
- {fileID: 2326026072467672024, guid: c8d9eb8c3ca524b4eb67f6364b455b87, type: 3}
- {fileID: 3528960956969533010, guid: 53eea3840d3cde34a9768b8773a3a7e8, type: 3}
- {fileID: 9076822654798104907, guid: 4684df63af6398f4f9f624a35023f8d2, type: 3}
- {fileID: 3863019143023165617, guid: 774e30e3f0b1d0d49bad0c2abf11038a, type: 3}
- {fileID: 5034240524438268576, guid: b15ba9d3d508ef244b0eeb76404dc9de, type: 3}
- {fileID: 7207007194116694737, guid: 7180ae585f0db8044ba048426f72d995, type: 3}

View File

@@ -410,8 +410,8 @@ RectTransform:
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_AnchoredPosition: {x: 640.62054, y: 0}
m_SizeDelta: {x: 268, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1768576830901014477
CanvasRenderer:
@@ -980,8 +980,8 @@ RectTransform:
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_AnchoredPosition: {x: 270.45056, y: 0}
m_SizeDelta: {x: 42, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2782310018074465201
CanvasRenderer:
@@ -1127,8 +1127,8 @@ RectTransform:
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_AnchoredPosition: {x: 1010.7905, y: 0}
m_SizeDelta: {x: 42, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8344156654954553365
CanvasRenderer:

View File

@@ -9,101 +9,29 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 3475216782073696103}
- component: {fileID: 7781922069796380302}
- component: {fileID: 4377364982411470597}
- component: {fileID: 4628299271862369037}
m_Layer: 5
m_Name: MainCanvas
m_Name: MainContainer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3475216782073696103
RectTransform:
--- !u!4 &3475216782073696103
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705607459134936448}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3194400469127591113}
- {fileID: 4844819231204431578}
- {fileID: 6565376648640168889}
- {fileID: 2474710976069581060}
m_Father: {fileID: 8031998656307625260}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!223 &7781922069796380302
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705607459134936448}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 0
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &4377364982411470597
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705607459134936448}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!114 &4628299271862369037
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705607459134936448}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!1 &1256355336041814197
GameObject:
m_ObjectHideFlags: 0
@@ -195,6 +123,111 @@ MonoBehaviour:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter
m_AspectMode: 2
m_AspectRatio: 0.6984924
--- !u!1 &1565599793773828882
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2474710976069581060}
- component: {fileID: 5194711550951645457}
- component: {fileID: 8389506840375856310}
- component: {fileID: 8772037901578749125}
m_Layer: 5
m_Name: HudButtons
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2474710976069581060
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1565599793773828882}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3194400469127591113}
- {fileID: 6565376648640168889}
- {fileID: 5539807896859420487}
- {fileID: 4167457363450270236}
m_Father: {fileID: 3475216782073696103}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!223 &5194711550951645457
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1565599793773828882}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &8389506840375856310
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1565599793773828882}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &8772037901578749125
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1565599793773828882}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!1 &2258532551510216878
GameObject:
m_ObjectHideFlags: 0
@@ -324,6 +357,142 @@ MonoBehaviour:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter
m_AspectMode: 2
m_AspectRatio: 0.6984924
--- !u!1 &2880351836456325619
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5539807896859420487}
- component: {fileID: 4009927759563501315}
- component: {fileID: 408315449576534225}
- component: {fileID: 8534533079251600356}
- component: {fileID: 3611543762016998582}
m_Layer: 5
m_Name: ScrapbookButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5539807896859420487
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2880351836456325619}
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: 7558106317572539906}
m_Father: {fileID: 2474710976069581060}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 74.99999, y: 74.99994}
m_SizeDelta: {x: 241, y: 239}
m_Pivot: {x: 0, y: 0}
--- !u!222 &4009927759563501315
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2880351836456325619}
m_CullTransparentMesh: 1
--- !u!114 &408315449576534225
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2880351836456325619}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
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: -4354454609415314374, guid: 1ba1f8cf73f79214190f1432fe1e3bc6, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &8534533079251600356
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2880351836456325619}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
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: 408315449576534225}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &3611543762016998582
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2880351836456325619}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e29407f14afc4428a48d3d1b4245b210, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::UI.HudMenuButton
pagePrefab: {fileID: 9076822654798104907, guid: 4684df63af6398f4f9f624a35023f8d2, type: 3}
buttonName: ScrapbookButton
--- !u!1 &4302150609862943047
GameObject:
m_ObjectHideFlags: 0
@@ -399,6 +568,153 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4413855344712201574
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4167457363450270236}
- component: {fileID: 7002890694051882557}
- component: {fileID: 3195462036213985967}
- component: {fileID: 3669392423470021785}
- component: {fileID: 8959933095960798577}
m_Layer: 0
m_Name: OpenPauseButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4167457363450270236
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4413855344712201574}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.93749994, y: 0.93749994, z: 0.93749994}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2474710976069581060}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 70.31249, y: -70.3125}
m_SizeDelta: {x: 128, y: 128}
m_Pivot: {x: 0, y: 1}
--- !u!222 &7002890694051882557
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4413855344712201574}
m_CullTransparentMesh: 1
--- !u!114 &3195462036213985967
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4413855344712201574}
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.78039217}
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: 1108211999407853544, guid: 0a391f68acfee1041a26723b1dafb73b, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &3669392423470021785
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4413855344712201574}
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: 3195462036213985967}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
m_TargetAssemblyTypeName: UI.PauseMenu, AppleHillsScripts
m_MethodName: ShowPauseMenu
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &8959933095960798577
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4413855344712201574}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e29407f14afc4428a48d3d1b4245b210, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::UI.HudMenuButton
pagePrefab: {fileID: 7668937303613647057, guid: fe049e0d73eadd7479140c8e7bd10efe, type: 3}
buttonName: PauseMenuButton
--- !u!1 &5113586844274188410
GameObject:
m_ObjectHideFlags: 0
@@ -559,6 +875,7 @@ GameObject:
m_Component:
- component: {fileID: 4844819231204431578}
- component: {fileID: 4957897919066152068}
- component: {fileID: 1245072623043782472}
m_Layer: 0
m_Name: Cinematics
m_TagString: Untagged
@@ -573,21 +890,21 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5598823553633962789}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
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_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1577118825025081580}
- {fileID: 2099503703387122955}
- {fileID: 6254500578479394496}
m_Father: {fileID: 3475216782073696103}
m_Father: {fileID: 8031998656307625260}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
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}
m_Pivot: {x: 0, y: 0}
--- !u!320 &4957897919066152068
PlayableDirector:
m_ObjectHideFlags: 0
@@ -625,6 +942,29 @@ PlayableDirector:
value: {fileID: 0}
m_ExposedReferences:
m_References: []
--- !u!223 &1245072623043782472
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5598823553633962789}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 0
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!1 &7207007194116694737
GameObject:
m_ObjectHideFlags: 0
@@ -635,6 +975,7 @@ GameObject:
m_Component:
- component: {fileID: 8031998656307625260}
- component: {fileID: 6319667953452487055}
- component: {fileID: 7124427760904455122}
m_Layer: 0
m_Name: PlayerHUD
m_TagString: Untagged
@@ -656,6 +997,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3475216782073696103}
- {fileID: 4844819231204431578}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &6319667953452487055
@@ -671,6 +1013,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: '::'
currentUIMode: 0
hudButtonsContainer: {fileID: 2474710976069581060}
landscapeObject: {fileID: 7681264016039674288}
portraitObject: {fileID: 2258532551510216878}
cinematicsParentObject: {fileID: 5598823553633962789}
@@ -681,6 +1024,19 @@ MonoBehaviour:
cinematicBackgroundSprites: {fileID: 0}
currentCinematicPlayer: {fileID: 0}
playableDirector: {fileID: 0}
--- !u!114 &7124427760904455122
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7207007194116694737}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1ae6c1745e44e22a0fa9209ebe45ee3, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::UI.Core.UIPageController
mainCanvas: {fileID: 3475216782073696103}
--- !u!1 &7681264016039674288
GameObject:
m_ObjectHideFlags: 0
@@ -719,7 +1075,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -0.00012207031, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5450280719114945834
CanvasRenderer:
@@ -953,7 +1309,7 @@ PrefabInstance:
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 3475216782073696103}
m_TransformParent: {fileID: 2474710976069581060}
m_Modifications:
- target: {fileID: 5445689290567702089, guid: 428a0feafda9d6d4e87ecf43ad41dc20, type: 3}
propertyPath: m_Pivot.x
@@ -1072,7 +1428,7 @@ PrefabInstance:
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 3475216782073696103}
m_TransformParent: {fileID: 2474710976069581060}
m_Modifications:
- target: {fileID: 1315170081792486277, guid: ccd858c7962d48147b0233c1bf1382f5, type: 3}
propertyPath: m_Pivot.x
@@ -1221,3 +1577,105 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 494d0aedce9744308499355006071138, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::UI.DummyInput
--- !u!1001 &6191884954105193926
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5539807896859420487}
m_Modifications:
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_Pivot.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_Pivot.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchorMin.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_SizeDelta.x
value: 75
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_SizeDelta.y
value: 75
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchoredPosition.y
value: -164
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6686144552275602124, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_Name
value: BoosterNotifications
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
--- !u!224 &7558106317572539906 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
m_PrefabInstance: {fileID: 6191884954105193926}
m_PrefabAsset: {fileID: 0}

View File

@@ -34,7 +34,9 @@ RectTransform:
- {fileID: 5027301639700053608}
- {fileID: 2081116343754364062}
- {fileID: 4830022034953347571}
- {fileID: 4247146273316450423}
- {fileID: 7968396929263690413}
- {fileID: 1477338421424306197}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -79,7 +81,7 @@ MonoBehaviour:
boosterDisappearDuration: 0.5
impulseSource: {fileID: 4448843358972162772}
openingParticleSystem: {fileID: 0}
albumIcon: {fileID: 0}
albumIcon: {fileID: 2290549912955623947}
--- !u!114 &4448843358972162772
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -214,6 +216,170 @@ MonoBehaviour:
m_PostInfinity: 2
m_RotationOrder: 4
curveHeight: 50
--- !u!1 &2290549912955623947
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4247146273316450423}
- component: {fileID: 5793188825053435727}
- component: {fileID: 5726314423424208945}
- component: {fileID: 299670167085314888}
- component: {fileID: 6513785969721658917}
m_Layer: 5
m_Name: ScrapbookButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4247146273316450423
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2290549912955623947}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.06667, y: 1.06667, z: 1.06667}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5228380266581535650}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 80.000015, y: 79.999985}
m_SizeDelta: {x: 241, y: 239}
m_Pivot: {x: 0, y: 0}
--- !u!222 &5793188825053435727
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2290549912955623947}
m_CullTransparentMesh: 1
--- !u!114 &5726314423424208945
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2290549912955623947}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
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: -4354454609415314374, guid: 1ba1f8cf73f79214190f1432fe1e3bc6, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &299670167085314888
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2290549912955623947}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
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: 5726314423424208945}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &6513785969721658917
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2290549912955623947}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 494d0aedce9744308499355006071138, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::UI.DummyInput
--- !u!1 &2898816812112041854
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1477338421424306197}
m_Layer: 0
m_Name: GameObject (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1477338421424306197
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2898816812112041854}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -297.3595, y: -196.74738, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5228380266581535650}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &4303341275909682426
GameObject:
m_ObjectHideFlags: 0

View File

@@ -110,140 +110,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &7988843909609902037
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4472180225153869618}
- component: {fileID: 4975159028874118741}
- component: {fileID: 4914035146251299949}
- component: {fileID: 1514617440643059794}
- component: {fileID: 4669876628389811622}
m_Layer: 5
m_Name: ScrapbookButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4472180225153869618
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7988843909609902037}
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: 8268404978292125473}
m_Father: {fileID: 8113036759791843642}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 75, y: 75}
m_SizeDelta: {x: 241, y: 239}
m_Pivot: {x: 0, y: 0}
--- !u!222 &4975159028874118741
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7988843909609902037}
m_CullTransparentMesh: 1
--- !u!114 &4914035146251299949
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7988843909609902037}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
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: -4354454609415314374, guid: 1ba1f8cf73f79214190f1432fe1e3bc6, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &1514617440643059794
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7988843909609902037}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
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: 4914035146251299949}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &4669876628389811622
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7988843909609902037}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 494d0aedce9744308499355006071138, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::UI.DummyInput
--- !u!1 &9076822654798104907
GameObject:
m_ObjectHideFlags: 0
@@ -254,9 +120,7 @@ GameObject:
m_Component:
- component: {fileID: 8113036759791843642}
- component: {fileID: 176964434276338403}
- component: {fileID: 7523647555835552841}
- component: {fileID: 3108254398865102653}
- component: {fileID: 8263013636441668883}
m_Layer: 5
m_Name: ScrapBookMenu
m_TagString: Untagged
@@ -278,7 +142,6 @@ RectTransform:
m_Children:
- {fileID: 5906828909529466605}
- {fileID: 691082512065824864}
- {fileID: 4472180225153869618}
- {fileID: 5300636346148318950}
- {fileID: 8702856743180718180}
m_Father: {fileID: 0}
@@ -311,29 +174,6 @@ Canvas:
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &7523647555835552841
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9076822654798104907}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!114 &3108254398865102653
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -351,21 +191,6 @@ MonoBehaviour:
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &8263013636441668883
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9076822654798104907}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4b3b63118ebc48d6b8f28cd69d96191e, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::UI.CardSystem.CardAlbumOpener
openAlbumButton: {fileID: 1514617440643059794}
albumViewPage: {fileID: 5982305211081251604}
boosterOpeningPage: {fileID: 304904072851265091}
--- !u!1001 &4691000134302573506
PrefabInstance:
m_ObjectHideFlags: 0
@@ -825,7 +650,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1511834054213404741, guid: 88a05fdd940194543ade1cc2bcdada5f, type: 3}
propertyPath: m_AnchoredPosition.x
value: 32
value: 31.99997
objectReference: {fileID: 0}
- target: {fileID: 1511834054213404741, guid: 88a05fdd940194543ade1cc2bcdada5f, type: 3}
propertyPath: m_AnchoredPosition.y
@@ -3192,116 +3017,3 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 2088943967680250180, guid: 88a05fdd940194543ade1cc2bcdada5f, type: 3}
m_PrefabInstance: {fileID: 5549612182461073321}
m_PrefabAsset: {fileID: 0}
--- !u!114 &5982305211081251604 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2162084082982493373, guid: 88a05fdd940194543ade1cc2bcdada5f, type: 3}
m_PrefabInstance: {fileID: 5549612182461073321}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59ff936424a34ce3937299c66232bf7a, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::AppleHills.UI.CardSystem.AlbumViewPage
--- !u!1001 &5742495987250154725
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 4472180225153869618}
m_Modifications:
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_Pivot.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_Pivot.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchorMin.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_SizeDelta.x
value: 75
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_SizeDelta.y
value: 75
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_AnchoredPosition.y
value: -164
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6686144552275602124, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
propertyPath: m_Name
value: BoosterNotifications
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
--- !u!224 &8268404978292125473 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4399514539281523652, guid: fd3f9527253841847a5a204072bec7bb, type: 3}
m_PrefabInstance: {fileID: 5742495987250154725}
m_PrefabAsset: {fileID: 0}

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6fb0d7fc6faad154b8c3e3cb7abb7c15
guid: fe049e0d73eadd7479140c8e7bd10efe
PrefabImporter:
externalObjects: {}
userData:

View File

@@ -1,50 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3863019143023165617
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 272997100784137721}
- component: {fileID: 497632815361153787}
m_Layer: 5
m_Name: UIPageController
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &272997100784137721
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3863019143023165617}
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: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &497632815361153787
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3863019143023165617}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1ae6c1745e44e22a0fa9209ebe45ee3, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::UI.Core.UIPageController

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 774e30e3f0b1d0d49bad0c2abf11038a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -25,7 +25,6 @@ public class AppleAudioSource : MonoBehaviour
_audioMixer = AudioManager.Instance.audioMixer;
InitializeAudioSource();
audioSource.playOnAwake = false;
}

View File

@@ -2,6 +2,7 @@ using UnityEngine;
using SkiaSharp.Unity;
using Input;
using AppleHills.Core;
using UI;
using UnityEngine.Events;
public class AppSwitcher : MonoBehaviour
@@ -31,6 +32,7 @@ public class AppSwitcher : MonoBehaviour
public void OpenAppSwitcher()
{
PlayerHudManager.Instance.HideAllHudExcept(gameObject);
rainbow.SetActive(true);
//Activate players
@@ -67,6 +69,8 @@ public class AppSwitcher : MonoBehaviour
// Hide the exit button
exitButton.SetActive(false);
PlayerHudManager.Instance.ShowAllHud();
}
public void GamesHiddenAnimationEvent()

View File

@@ -37,8 +37,9 @@ namespace UI.CardSystem
[SerializeField] private float boosterDisappearDuration = 0.5f;
[SerializeField] private CinemachineImpulseSource impulseSource;
[SerializeField] private ParticleSystem openingParticleSystem;
[SerializeField] private Transform albumIcon; // Target for card fly-away animation
[SerializeField] private GameObject albumIcon; // Target for card fly-away animation and dismiss button
private Button _dismissButton; // Button to close/dismiss the booster opening page
private int _availableBoosterCount;
private BoosterPackDraggable _currentBoosterInCenter;
private List<BoosterPackDraggable> _activeBoostersInSlots = new List<BoosterPackDraggable>();
@@ -57,12 +58,32 @@ namespace UI.CardSystem
if (canvasGroup == null)
canvasGroup = gameObject.AddComponent<CanvasGroup>();
// Get dismiss button from albumIcon GameObject
if (albumIcon != null)
{
_dismissButton = albumIcon.GetComponent<Button>();
if (_dismissButton != null)
{
_dismissButton.onClick.AddListener(OnDismissButtonClicked);
}
else
{
Debug.LogWarning("[BoosterOpeningPage] albumIcon does not have a Button component!");
}
}
// UI pages should start disabled
gameObject.SetActive(false);
}
private void OnDestroy()
{
// Unsubscribe from dismiss button
if (_dismissButton != null)
{
_dismissButton.onClick.RemoveListener(OnDismissButtonClicked);
}
// Unsubscribe from slot events
if (centerOpeningSlot != null)
{
@@ -82,6 +103,18 @@ namespace UI.CardSystem
_availableBoosterCount = count;
}
/// <summary>
/// Called when the dismiss button (albumIcon) is clicked
/// </summary>
private void OnDismissButtonClicked()
{
if (UIPageController.Instance != null)
{
UIPageController.Instance.PopPage();
Debug.Log("[BoosterOpeningPage] Dismiss button clicked, popping page from stack");
}
}
public override void TransitionIn()
{
base.TransitionIn();
@@ -768,7 +801,7 @@ namespace UI.CardSystem
yield return new WaitForSeconds(0.5f);
// Animate cards to album icon (or center if no icon assigned) with staggered delays
Vector3 targetPosition = albumIcon != null ? albumIcon.position : Vector3.zero;
Vector3 targetPosition = albumIcon != null ? albumIcon.transform.position : Vector3.zero;
int cardIndex = 0;
foreach (GameObject cardObj in _currentRevealedCards)

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using Core;
using Core.Lifecycle;
using UnityEngine;
using UnityEngine.InputSystem;
namespace UI.Core
@@ -9,12 +10,19 @@ namespace UI.Core
/// <summary>
/// Manages UI page transitions and maintains a stack of active pages.
/// Pages are pushed onto a stack for navigation and popped when going back.
/// Supports both scene-based pages and prefab-based instantiation.
/// </summary>
public class UIPageController : ManagedBehaviour
{
private static UIPageController _instance;
public static UIPageController Instance => _instance;
[Header("Canvas Management")]
[SerializeField] private Transform mainCanvas;
// Cache instantiated pages to avoid re-creating them
private Dictionary<GameObject, UIPage> _prefabInstanceCache = new Dictionary<GameObject, UIPage>();
private Stack<UIPage> _pageStack = new Stack<UIPage>();
public UIPage CurrentPage => _pageStack.Count > 0 ? _pageStack.Peek() : null;
public IEnumerable<UIPage> PageStack => _pageStack;
@@ -48,7 +56,17 @@ namespace UI.Core
{
base.OnDestroy();
// Clean up event subscription when the controller is destroyed
// Clean up cached instances
foreach (var cachedPage in _prefabInstanceCache.Values)
{
if (cachedPage != null)
{
Destroy(cachedPage.gameObject);
}
}
_prefabInstanceCache.Clear();
// Clean up event subscription
if (_cancelAction != null)
{
_cancelAction.performed -= OnCancelActionPerformed;
@@ -85,6 +103,86 @@ namespace UI.Core
Logging.Debug($"[UIPageController] Pushed page: {page.PageName}");
}
/// <summary>
/// Pushes a page from a prefab. Instantiates on first use, reuses on subsequent calls.
/// </summary>
/// <param name="pagePrefab">The prefab containing a UIPage component</param>
public void PushPageFromPrefab(GameObject pagePrefab)
{
if (pagePrefab == null)
{
Debug.LogError("[UIPageController] Cannot push null prefab");
return;
}
UIPage pageInstance = GetOrInstantiatePage(pagePrefab);
if (pageInstance != null)
{
PushPage(pageInstance); // Use existing push logic
}
}
/// <summary>
/// Gets cached page instance or instantiates a new one from prefab.
/// Searches for UIPage component on root GameObject first, then in first-order children.
/// </summary>
private UIPage GetOrInstantiatePage(GameObject pagePrefab)
{
// Check cache first
if (_prefabInstanceCache.TryGetValue(pagePrefab, out UIPage cachedPage))
{
if (cachedPage != null) // Null check in case it was destroyed
{
return cachedPage;
}
else
{
_prefabInstanceCache.Remove(pagePrefab);
}
}
// Validate mainCanvas
if (mainCanvas == null)
{
Debug.LogError("[UIPageController] mainCanvas is not assigned! Cannot instantiate page prefab.");
return null;
}
// Instantiate new page
GameObject pageObject = Instantiate(pagePrefab, mainCanvas);
// Try to find UIPage component on root first
UIPage pageComponent = pageObject.GetComponent<UIPage>();
// If not found on root, search first-order children (in hierarchy order)
if (pageComponent == null)
{
Transform pageTransform = pageObject.transform;
for (int i = 0; i < pageTransform.childCount; i++)
{
pageComponent = pageTransform.GetChild(i).GetComponent<UIPage>();
if (pageComponent != null)
{
Logging.Debug($"[UIPageController] Found UIPage component on child: {pageComponent.gameObject.name}");
break;
}
}
}
if (pageComponent == null)
{
Debug.LogError($"[UIPageController] Prefab {pagePrefab.name} does not have a UIPage component on root or first-order children!");
Destroy(pageObject);
return null;
}
// Cache it
_prefabInstanceCache[pagePrefab] = pageComponent;
Logging.Debug($"[UIPageController] Instantiated and cached page: {pageComponent.PageName}");
return pageComponent;
}
/// <summary>
/// Pops the current page from the stack and shows the previous page.
/// </summary>
@@ -112,20 +210,40 @@ namespace UI.Core
}
/// <summary>
/// Clears all pages from the stack.
/// Clears all pages from the stack and optionally destroys cached instances.
/// </summary>
public void ClearStack()
/// <param name="destroyCachedInstances">If true, destroys all cached prefab instances</param>
public void ClearStack(bool destroyCachedInstances = false)
{
if (_pageStack.Count <= 0) return;
// Hide current page
UIPage currentPage = _pageStack.Peek();
currentPage.TransitionOut();
if (_pageStack.Count > 0)
{
// Hide current page
UIPage currentPage = _pageStack.Peek();
currentPage.TransitionOut();
}
// Clear stack
_pageStack.Clear();
// Optionally destroy cached instances
if (destroyCachedInstances)
{
foreach (var cachedPage in _prefabInstanceCache.Values)
{
if (cachedPage != null)
{
Destroy(cachedPage.gameObject);
}
}
_prefabInstanceCache.Clear();
Logging.Debug("[UIPageController] Cleared page stack and destroyed cached instances");
}
else
{
Logging.Debug("[UIPageController] Cleared page stack (cached instances retained)");
}
OnPageChanged?.Invoke(null);
Logging.Debug("[UIPageController] Cleared page stack");
}
/// <summary>

View File

@@ -0,0 +1,69 @@
using UI.Core;
using UnityEngine;
using UnityEngine.UI;
namespace UI
{
/// <summary>
/// HUD button that opens a UI page from a prefab when clicked.
/// Implements ITouchInputConsumer as a dummy (no touch handling).
/// </summary>
[RequireComponent(typeof(Button))]
public class HudMenuButton : MonoBehaviour, ITouchInputConsumer
{
[Header("Page Configuration")]
[SerializeField] private GameObject pagePrefab;
[Tooltip("Optional: Custom name for debug logging")]
[SerializeField] private string buttonName = "HudButton";
private Button _button;
private void Awake()
{
_button = GetComponent<Button>();
if (_button != null)
{
_button.onClick.AddListener(OnButtonClicked);
}
else
{
Debug.LogError($"[HudMenuButton] {buttonName} missing Button component!");
}
}
private void OnDestroy()
{
if (_button != null)
{
_button.onClick.RemoveListener(OnButtonClicked);
}
}
private void OnButtonClicked()
{
if (pagePrefab == null)
{
Debug.LogError($"[HudMenuButton] {buttonName} has no page prefab assigned!");
return;
}
if (PlayerHudManager.Instance == null)
{
Debug.LogError($"[HudMenuButton] {buttonName} cannot find PlayerHudManager instance!");
return;
}
Debug.Log($"[HudMenuButton] {buttonName} opening page from prefab: {pagePrefab.name}");
UIPageController.Instance.PushPageFromPrefab(pagePrefab);
}
#region ITouchInputConsumer - Dummy Implementation
// Required by interface but not used
public void OnTap(Vector2 position) { }
public void OnHoldStart(Vector2 position) { }
public void OnHoldMove(Vector2 position) { }
public void OnHoldEnd(Vector2 position) { }
#endregion
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e29407f14afc4428a48d3d1b4245b210
timeCreated: 1762686499

View File

@@ -1,154 +1,333 @@
using Bootstrap;
using Core;
using Core.Lifecycle;
using UI.Core;
using Cinematics;
using UnityEngine;
using Core;
using System;
using UnityEngine.UI;
using UnityEngine.Playables;
using Core.Lifecycle;
using JetBrains.Annotations;
using UnityEngine.UI;
using System.Linq;
using System.Collections.Generic;
public class PlayerHudManager : ManagedBehaviour
namespace UI
{
public enum UIMode { Overworld, Puzzle, Minigame, HideAll };
public UIMode currentUIMode;
private AppSwitcher _appSwitcher;
public GameObject landscapeObject;
public GameObject portraitObject;
public GameObject cinematicsParentObject;
public GameObject CinematicBackground;
public GameObject appSwitcher;
public GameObject eagleEye;
[HideInInspector] public Image cinematicSprites;
[HideInInspector] public Image cinematicBackgroundSprites;
[HideInInspector] public GameObject currentCinematicPlayer;
[HideInInspector] public PlayableDirector playableDirector;
private static PlayerHudManager _instance;
public static PlayerHudManager Instance => _instance;
private new void Awake()
/// <summary>
/// Manages player HUD elements and their visibility.
/// Works alongside UIPageController (must be on same GameObject).
/// Automatically hides HUD when pages open, shows when all pages close.
/// </summary>
public class PlayerHudManager : ManagedBehaviour
{
base.Awake();
if (Instance != null)
public enum UIMode { Overworld, Puzzle, Minigame, HideAll };
public UIMode currentUIMode;
[Header("HUD Management")]
[SerializeField] private Transform hudButtonsContainer; // Parent object containing all HUD buttons
[Header("Cinematic References")]
public GameObject landscapeObject;
public GameObject portraitObject;
public GameObject cinematicsParentObject;
public GameObject CinematicBackground;
[Header("HUD Elements")]
public GameObject appSwitcher;
public GameObject eagleEye;
[HideInInspector] public Image cinematicSprites;
[HideInInspector] public Image cinematicBackgroundSprites;
[HideInInspector] public GameObject currentCinematicPlayer;
[HideInInspector] public PlayableDirector playableDirector;
private static PlayerHudManager _instance;
public static PlayerHudManager Instance => _instance;
private UIPageController _uiPageController;
private AppSwitcher _appSwitcherComponent;
private new void Awake()
{
Destroy(this);
return;
base.Awake();
if (Instance != null)
{
Destroy(this);
return;
}
_instance = this;
// Get UIPageController on same GameObject
_uiPageController = GetComponent<UIPageController>();
if (_uiPageController == null)
{
UnityEngine.Debug.LogError("[PlayerHudManager] UIPageController not found on same GameObject!");
}
// Get AppSwitcher component reference
if (appSwitcher != null)
{
_appSwitcherComponent = appSwitcher.GetComponent<AppSwitcher>();
}
InitializeReferences();
}
_instance = this;
InitializeReferences();
}
protected override void OnManagedAwake()
{
if (SceneManagerService.Instance != null)
protected override void OnManagedAwake()
{
SceneManagerService.Instance.SceneLoadCompleted += NewSceneLoaded;
}
if (SceneManagerService.Instance.CurrentGameplayScene == "AppleHillsOverworld")
{
NewSceneLoaded("AppleHillsOverworld");
}
if (SceneManagerService.Instance.CurrentGameplayScene == "StartingScene")
{
// TODO: Hide all UI until cinematics have played
NewSceneLoaded("AppleHillsOverworld");
// Subscribe to UIPageController page changes for auto HUD management
if (_uiPageController != null)
{
_uiPageController.OnPageChanged += HandlePageStackChanged;
}
// Subscribe to CinematicsManager events for HUD management during cinematics
if (CinematicsManager.Instance != null)
{
CinematicsManager.Instance.OnCinematicStarted += HandleCinematicStarted;
CinematicsManager.Instance.OnCinematicStopped += HandleCinematicStopped;
// Check if a cinematic is already playing
if (CinematicsManager.Instance.IsCinematicPlaying)
{
HideAllHud();
Logging.Debug("[PlayerHudManager] Cinematic already playing on init, hiding HUD");
}
}
if (SceneManagerService.Instance != null)
{
SceneManagerService.Instance.SceneLoadCompleted += NewSceneLoaded;
}
if (SceneManagerService.Instance.CurrentGameplayScene == "AppleHillsOverworld")
{
NewSceneLoaded("AppleHillsOverworld");
}
if (SceneManagerService.Instance.CurrentGameplayScene == "StartingScene")
{
// TODO: Hide all UI until cinematics have played
NewSceneLoaded("AppleHillsOverworld");
}
}
}
private void InitializeReferences()
{
currentCinematicPlayer = landscapeObject;
playableDirector = cinematicsParentObject.GetComponent<PlayableDirector>();
cinematicSprites = currentCinematicPlayer.GetComponent<Image>();
cinematicBackgroundSprites = CinematicBackground.GetComponent<Image>();
}
private void UpateCinematicReferences(GameObject newCinematicPlayer)
{
currentCinematicPlayer = newCinematicPlayer;
cinematicSprites = currentCinematicPlayer.GetComponent<Image>();
}
public void SetPortraitMode(bool portraitModeEnable)
{
if (portraitModeEnable)
protected override void OnDestroy()
{
UpateCinematicReferences(portraitObject);
base.OnDestroy();
// Unsubscribe from events
if (_uiPageController != null)
{
_uiPageController.OnPageChanged -= HandlePageStackChanged;
}
if (CinematicsManager.Instance != null)
{
CinematicsManager.Instance.OnCinematicStarted -= HandleCinematicStarted;
CinematicsManager.Instance.OnCinematicStopped -= HandleCinematicStopped;
}
if (SceneManagerService.Instance != null)
{
SceneManagerService.Instance.SceneLoadCompleted -= NewSceneLoaded;
}
}
else
{
UpateCinematicReferences(landscapeObject);
}
}
public void NewSceneLoaded(string sceneName)
{
switch (sceneName)
private void InitializeReferences()
{
case "AppleHillsOverworld":
UpdateUIMode(UIMode.Overworld);
break;
case "Quarry":
UpdateUIMode(UIMode.Puzzle);
break;
case "DivingForPictures":
UpdateUIMode(UIMode.Minigame);
break;
currentCinematicPlayer = landscapeObject;
playableDirector = cinematicsParentObject.GetComponent<PlayableDirector>();
cinematicSprites = currentCinematicPlayer.GetComponent<Image>();
cinematicBackgroundSprites = CinematicBackground.GetComponent<Image>();
}
private void UpateCinematicReferences(GameObject newCinematicPlayer)
{
currentCinematicPlayer = newCinematicPlayer;
cinematicSprites = currentCinematicPlayer.GetComponent<Image>();
}
public void SetPortraitMode(bool portraitModeEnable)
{
if (portraitModeEnable)
{
UpateCinematicReferences(portraitObject);
}
else
{
UpateCinematicReferences(landscapeObject);
}
}
public void NewSceneLoaded(string sceneName)
{
switch (sceneName)
{
case "AppleHillsOverworld":
UpdateUIMode(UIMode.Overworld);
break;
case "Quarry":
UpdateUIMode(UIMode.Puzzle);
break;
case "DivingForPictures":
UpdateUIMode(UIMode.Minigame);
break;
}
}
}
public void UpdateUIMode(UIMode mode)
{
switch (mode)
public void UpdateUIMode(UIMode mode)
{
case UIMode.Overworld:
// Update currentUIMode var
currentUIMode = UIMode.Overworld;
// Show app switcher
appSwitcher.SetActive(true);
// Hide eagle eye
eagleEye.SetActive(false);
break;
case UIMode.Puzzle:
// Update currentUIMode var
currentUIMode = UIMode.Puzzle;
// Hide app switcher
appSwitcher.SetActive(false);
// show eagle eye
eagleEye.SetActive(true);
break;
case UIMode.Minigame:
// Update currentUIMode var
currentUIMode = UIMode.Minigame;
// Hide app switcher
appSwitcher.SetActive(false);
// Hide birds eye
eagleEye.SetActive(false);
break;
switch (mode)
{
case UIMode.Overworld:
// Update currentUIMode var
currentUIMode = UIMode.Overworld;
// Show app switcher
appSwitcher.SetActive(true);
// Hide eagle eye
eagleEye.SetActive(false);
break;
case UIMode.Puzzle:
// Update currentUIMode var
currentUIMode = UIMode.Puzzle;
// Hide app switcher
appSwitcher.SetActive(false);
// show eagle eye
eagleEye.SetActive(true);
break;
case UIMode.Minigame:
// Update currentUIMode var
currentUIMode = UIMode.Minigame;
// Hide app switcher
appSwitcher.SetActive(false);
// Hide birds eye
eagleEye.SetActive(false);
break;
}
}
public void ToggleAppSwitcher(bool boo)
{
appSwitcher.SetActive(boo);
}
/// <summary>
/// Hides all HUD button elements
/// </summary>
public void HideAllHud()
{
SetHudVisibility(false);
}
/// <summary>
/// Shows all HUD button elements
/// </summary>
public void ShowAllHud()
{
SetHudVisibility(true);
}
/// <summary>
/// Hides all HUD elements except the specified exceptions
/// </summary>
/// <param name="exceptions">GameObjects to keep visible</param>
public void HideAllHudExcept(params GameObject[] exceptions)
{
if (hudButtonsContainer == null)
{
Logging.Warning("[PlayerHudManager] HUD buttons container not assigned");
return;
}
HashSet<GameObject> exceptionSet = new HashSet<GameObject>(exceptions);
foreach (Transform child in hudButtonsContainer)
{
bool shouldShow = exceptionSet.Contains(child.gameObject);
child.gameObject.SetActive(shouldShow);
}
Logging.Debug($"[PlayerHudManager] Hidden HUD except {exceptions.Length} exceptions");
}
/// <summary>
/// Common method to set visibility of all HUD elements
/// </summary>
private void SetHudVisibility(bool visible)
{
if (hudButtonsContainer == null)
{
Logging.Warning("[PlayerHudManager] HUD buttons container not assigned");
return;
}
foreach (Transform child in hudButtonsContainer)
{
child.gameObject.SetActive(visible);
}
Logging.Debug($"[PlayerHudManager] {(visible ? "Shown" : "Hidden")} all HUD elements");
}
/// <summary>
/// Automatically manages HUD visibility based on page stack state
/// </summary>
private void HandlePageStackChanged(UIPage currentPage)
{
if (_uiPageController == null) return;
// Use LINQ Count() on IEnumerable<UIPage> PageStack property
int stackCount = _uiPageController.PageStack.Count();
if (stackCount == 1 && currentPage != null)
{
// First page just opened - hide HUD
HideAllHud();
Logging.Debug("[PlayerHudManager] Page opened, hiding HUD");
}
else if (stackCount == 0)
{
// Last page closed - show HUD
ShowAllHud();
Logging.Debug("[PlayerHudManager] All pages closed, showing HUD");
}
// If stackCount > 1, we're navigating between pages, keep HUD hidden
}
/// <summary>
/// Called when a cinematic starts playing
/// </summary>
private void HandleCinematicStarted()
{
HideAllHud();
Logging.Debug("[PlayerHudManager] Cinematic started, hiding HUD");
}
/// <summary>
/// Called when a cinematic stops playing
/// </summary>
private void HandleCinematicStopped()
{
ShowAllHud();
Logging.Debug("[PlayerHudManager] Cinematic stopped, showing HUD");
}
/// <summary>
/// Convenience method to push a page from prefab using the UIPageController
/// </summary>
public void PushPageFromPrefab(GameObject pagePrefab)
{
if (_uiPageController != null)
{
_uiPageController.PushPageFromPrefab(pagePrefab);
}
else
{
UnityEngine.Debug.LogError("[PlayerHudManager] Cannot push page - UIPageController not found!");
}
}
}
public void ToggleAppSwitcher(bool boo)
{
appSwitcher.SetActive(boo);
}
}