From 8e3aefe3a6989e03049ae5e30f6ca992585a0fbb Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 4 Mar 2025 22:36:52 -0800 Subject: [PATCH 1/2] Place score display into nested canvas To avoid rebuilding layout unnecessarily each time score updates, and score is updated the most in the main HUD --- .../Prefabs/Gameplay/HUD/ScoreDisplay.prefab | 21 -- Assets/Scenes/Gameplay.unity | 232 ++++++++++++++++-- 2 files changed, 217 insertions(+), 36 deletions(-) diff --git a/Assets/Prefabs/Gameplay/HUD/ScoreDisplay.prefab b/Assets/Prefabs/Gameplay/HUD/ScoreDisplay.prefab index 7ee844c7b..ae7d14566 100644 --- a/Assets/Prefabs/Gameplay/HUD/ScoreDisplay.prefab +++ b/Assets/Prefabs/Gameplay/HUD/ScoreDisplay.prefab @@ -394,7 +394,6 @@ GameObject: m_Component: - component: {fileID: 1682100933276730677} - component: {fileID: 3580836438431718176} - - component: {fileID: 1427118048} m_Layer: 5 m_Name: ScoreDisplay m_TagString: Untagged @@ -448,26 +447,6 @@ MonoBehaviour: type: 3} _brokenOverlaySprite: {fileID: 2128003, guid: 9a19cea8578114f42bec348c310a8891, type: 3} ---- !u!114 &1427118048 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1682100933276730678} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 26c69184c4c94e07a1c1a5403823ba9a, type: 3} - m_Name: - m_EditorClassIdentifier: - _draggableElementName: scoreDisplay - _horizontal: 1 - _vertical: 1 - _onEditModeChanged: - m_PersistentCalls: - m_Calls: [] - _draggingDisplayPrefab: {fileID: 5730308542642054521, guid: 2a82983eb1a960843bd5603736f9b042, - type: 3} --- !u!1 &2302898695580999361 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/Gameplay.unity b/Assets/Scenes/Gameplay.unity index 7f8e00518..379cec58c 100644 --- a/Assets/Scenes/Gameplay.unity +++ b/Assets/Scenes/Gameplay.unity @@ -1383,13 +1383,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 5f9d6d58525b4d22961cb5f7264164de, type: 3} m_Name: m_EditorClassIdentifier: - IsSeekingReplay: 0 - _trackViewManager: {fileID: 1330928978} - _replayController: {fileID: 922548498} - _pauseMenu: {fileID: 1323155442} - _draggableHud: {fileID: 1650395556} - _lyricBar: {fileID: 1047079480} - k__BackingField: {fileID: 1312797156} _fiveFretGuitarPrefab: {fileID: 7381119128095886790, guid: 0f7a37c9e4abcad4da73b7603d4b7596, type: 3} _sixFretGuitarPrefab: {fileID: 0} @@ -1400,6 +1393,13 @@ MonoBehaviour: _proKeysPrefab: {fileID: 7381119128095886790, guid: 52322b4e39d4f9349a65c60a07fc1b3a, type: 3} _proGuitarPrefab: {fileID: 0} + IsSeekingReplay: 0 + _trackViewManager: {fileID: 1330928978} + _replayController: {fileID: 922548498} + _pauseMenu: {fileID: 1323155442} + _draggableHud: {fileID: 1650395556} + _lyricBar: {fileID: 1047079480} + k__BackingField: {fileID: 1312797156} --- !u!4 &318454372 Transform: m_ObjectHideFlags: 0 @@ -1474,7 +1474,7 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 397042284} + m_TransformParent: {fileID: 484523227} m_Modifications: - target: {fileID: 227366190812778480, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} @@ -1496,6 +1496,11 @@ PrefabInstance: propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} + - target: {fileID: 1682100932476655723, guid: 039fee0ec42345d4f88c0625255415d4, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 1682100933276730677, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} propertyPath: m_Pivot.x @@ -1509,7 +1514,7 @@ PrefabInstance: - target: {fileID: 1682100933276730677, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} propertyPath: m_RootOrder - value: 3 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1682100933276730677, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} @@ -1564,27 +1569,27 @@ PrefabInstance: - target: {fileID: 1682100933276730677, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 1682100933276730677, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 1682100933276730677, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 1682100933276730677, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} propertyPath: m_AnchoredPosition.x - value: -50 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1682100933276730677, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} propertyPath: m_AnchoredPosition.y - value: -100 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1682100933276730677, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} @@ -1611,6 +1616,36 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: 142.36191 objectReference: {fileID: 0} + - target: {fileID: 2640522790579517911, guid: 039fee0ec42345d4f88c0625255415d4, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2640522790579517911, guid: 039fee0ec42345d4f88c0625255415d4, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2640522790579517911, guid: 039fee0ec42345d4f88c0625255415d4, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2640522790579517911, guid: 039fee0ec42345d4f88c0625255415d4, + type: 3} + propertyPath: m_SizeDelta.x + value: 375 + objectReference: {fileID: 0} + - target: {fileID: 2640522790579517911, guid: 039fee0ec42345d4f88c0625255415d4, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -187.5 + objectReference: {fileID: 0} + - target: {fileID: 2640522790579517911, guid: 039fee0ec42345d4f88c0625255415d4, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -105 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 039fee0ec42345d4f88c0625255415d4, type: 3} --- !u!224 &329669832 stripped @@ -2855,7 +2890,7 @@ RectTransform: - {fileID: 1047079481} - {fileID: 793838894} - {fileID: 1316571461} - - {fileID: 329669832} + - {fileID: 484523227} - {fileID: 103030101} m_Father: {fileID: 1650395555} m_RootOrder: 3 @@ -3393,6 +3428,105 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 477816501} m_CullTransparentMesh: 1 +--- !u!1 &484523226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 484523227} + - component: {fileID: 484523230} + - component: {fileID: 484523228} + - component: {fileID: 484523231} + m_Layer: 5 + m_Name: Score Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &484523227 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 484523226} + 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: 1 + m_Children: + - {fileID: 329669832} + m_Father: {fileID: 397042284} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -50, y: -100} + m_SizeDelta: {x: 375, y: 210} + m_Pivot: {x: 1, y: 1} +--- !u!114 &484523228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 484523226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!223 &484523230 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 484523226} + 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: 1 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &484523231 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 484523226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 26c69184c4c94e07a1c1a5403823ba9a, type: 3} + m_Name: + m_EditorClassIdentifier: + _draggableElementName: scoreDisplay + _horizontal: 1 + _vertical: 1 + _onEditModeChanged: + m_PersistentCalls: + m_Calls: [] + _draggingDisplayPrefab: {fileID: 5730308542642054521, guid: 2a82983eb1a960843bd5603736f9b042, + type: 3} --- !u!1 &523103389 GameObject: m_ObjectHideFlags: 0 @@ -3529,6 +3663,74 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 523103389} m_CullTransparentMesh: 1 +--- !u!1 &533860940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 533860943} + - component: {fileID: 533860942} + - component: {fileID: 533860941} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &533860941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 533860940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &533860942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 533860940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &533860943 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 533860940} + 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_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &550613177 GameObject: m_ObjectHideFlags: 0 From e38a035c845ea346f8abea4faae41a42f1205726 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Tue, 4 Mar 2025 23:24:15 -0800 Subject: [PATCH 2/2] Put lyric bars under nested canvases --- Assets/Scenes/Gameplay.unity | 144 ++++++++++++++++++++++++++++++++--- 1 file changed, 132 insertions(+), 12 deletions(-) diff --git a/Assets/Scenes/Gameplay.unity b/Assets/Scenes/Gameplay.unity index 379cec58c..d4adb617f 100644 --- a/Assets/Scenes/Gameplay.unity +++ b/Assets/Scenes/Gameplay.unity @@ -3503,7 +3503,7 @@ Canvas: m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 m_VertexColorAlwaysGammaSpace: 1 - m_AdditionalShaderChannelsFlag: 0 + m_AdditionalShaderChannelsFlag: 25 m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 @@ -4578,6 +4578,66 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1 &841538747 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 841538748} + - component: {fileID: 841538749} + m_Layer: 5 + m_Name: Upcoming Lyric Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &841538748 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841538747} + 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: 1895300733} + m_Father: {fileID: 1047079481} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -54.000023} + m_SizeDelta: {x: 0, y: 40} + m_Pivot: {x: 0.5, y: 1.0000002} +--- !u!223 &841538749 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 841538747} + 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: 1 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 --- !u!1001 &922548496 PrefabInstance: m_ObjectHideFlags: 0 @@ -4618,22 +4678,22 @@ PrefabInstance: - target: {fileID: 2933889975780695480, guid: f8c143f8514898b4fb85fbadc18550c0, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2933889975780695480, guid: f8c143f8514898b4fb85fbadc18550c0, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2933889975780695480, guid: f8c143f8514898b4fb85fbadc18550c0, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 30.000036 objectReference: {fileID: 0} - target: {fileID: 2933889975780695480, guid: f8c143f8514898b4fb85fbadc18550c0, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -32 objectReference: {fileID: 0} - target: {fileID: 5322898957872382039, guid: f8c143f8514898b4fb85fbadc18550c0, type: 3} @@ -5365,8 +5425,8 @@ RectTransform: m_Children: - {fileID: 214379079} - {fileID: 658438232} - - {fileID: 1651499654} - - {fileID: 1895300733} + - {fileID: 1858185583} + - {fileID: 841538748} m_Father: {fileID: 397042284} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -6929,8 +6989,8 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1047079481} - m_RootOrder: 2 + m_Father: {fileID: 1858185583} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} @@ -7761,6 +7821,66 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1826277785} m_CullTransparentMesh: 1 +--- !u!1 &1858185582 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1858185583} + - component: {fileID: 1858185585} + m_Layer: 5 + m_Name: Lyric Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1858185583 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858185582} + 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: 1651499654} + m_Father: {fileID: 1047079481} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -24} + m_SizeDelta: {x: 0, y: 48} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &1858185585 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1858185582} + 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: 1 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 --- !u!1 &1886693830 GameObject: m_ObjectHideFlags: 0 @@ -7973,12 +8093,12 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1047079481} - m_RootOrder: 3 + m_Father: {fileID: 841538748} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -54.000023} + m_AnchoredPosition: {x: 0, y: -0.000038146973} m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0.5, y: 1.0000002} --- !u!114 &1895300734