From cb06837a290fac9e4e1538edae63e63fd88f1f63 Mon Sep 17 00:00:00 2001 From: sega Date: Wed, 26 Aug 2026 15:12:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B7=D0=B0=D1=82=D0=B5=D0=BC=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=84=D0=BE=D0=BD=D0=B0=20=D0=BF=D1=80=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=D0=B5=20=D0=B2=20=D0=B8?= =?UTF-8?q?=D0=B3=D1=80=D0=BE=D0=B2=D0=BE=D0=B9=20=D1=80=D0=B5=D0=B6=D0=B8?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scenes/GameScene3D.unity | 371 ++++++++++++++---- .../Characters/CharactersController.cs | 9 + Assets/Scripts/Common/GameManager.cs | 3 + Assets/Scripts/Gameplay/Board.cs | 3 + Assets/Scripts/Gameplay/BoardFitter.cs | 17 + Assets/Scripts/UI/BackgroundDimmer.cs | 47 +++ Assets/Scripts/UI/BackgroundDimmer.cs.meta | 2 + .../UI/Transitions/MenuGameplayTransit.cs | 9 +- 8 files changed, 375 insertions(+), 86 deletions(-) create mode 100644 Assets/Scripts/UI/BackgroundDimmer.cs create mode 100644 Assets/Scripts/UI/BackgroundDimmer.cs.meta diff --git a/Assets/Scenes/GameScene3D.unity b/Assets/Scenes/GameScene3D.unity index 65cd706..3683a42 100644 --- a/Assets/Scenes/GameScene3D.unity +++ b/Assets/Scenes/GameScene3D.unity @@ -452,6 +452,7 @@ MonoBehaviour: m_EditorClassIdentifier: Assembly-CSharp::MenuGameplayTransit _menu: {fileID: 1122363137} _gameplay: {fileID: 1081324698} + _backgroundDimmer: {fileID: 356766898} --- !u!4 &29868613 Transform: m_ObjectHideFlags: 0 @@ -3771,6 +3772,121 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 355424368} m_CullTransparentMesh: 1 +--- !u!1 &356766897 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 356766902} + - component: {fileID: 356766901} + - component: {fileID: 356766900} + - component: {fileID: 356766899} + - component: {fileID: 356766898} + m_Layer: 5 + m_Name: '[CANVAS BACKGROUND DIMMER]' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &356766898 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 356766897} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fe4609f7db394c4294ad8882052e849, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::BackgroundDimmer + _canvasGroup: {fileID: 356766899} + _menuBackground: {fileID: 888898826} + _gameplayAlpha: 0.75 + _fadeDuration: 2 +--- !u!225 &356766899 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 356766897} + m_Enabled: 1 + m_Alpha: 0 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 1 +--- !u!114 &356766900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 356766897} + 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.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &356766901 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 356766897} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 519420031} + m_PlaneDistance: 131 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_UseReflectionProbes: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &356766902 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 356766897} + 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: 557139806} + m_Father: {fileID: 0} + 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!1 &365101955 GameObject: m_ObjectHideFlags: 0 @@ -4268,7 +4384,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.x @@ -4276,7 +4392,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_SizeDelta.x @@ -4316,11 +4432,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.x - value: 116.51001 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.y - value: -22.955 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -5002,7 +5118,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.x @@ -5010,7 +5126,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_SizeDelta.x @@ -5050,11 +5166,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.x - value: 271.19003 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.y - value: -22.955 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -5623,6 +5739,81 @@ Transform: m_Children: [] m_Father: {fileID: 151433695} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &557139805 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 557139806} + - component: {fileID: 557139808} + - component: {fileID: 557139807} + m_Layer: 5 + m_Name: BackgroundShade + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &557139806 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557139805} + 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: 356766902} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &557139807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557139805} + 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: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 0 + 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 &557139808 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 557139805} + m_CullTransparentMesh: 1 --- !u!1 &557869783 GameObject: m_ObjectHideFlags: 0 @@ -7446,7 +7637,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.x @@ -7454,7 +7645,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_SizeDelta.x @@ -7494,11 +7685,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.x - value: 348.53003 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.y - value: -22.955 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -8436,6 +8627,7 @@ GameObject: m_Component: - component: {fileID: 888898824} - component: {fileID: 888898825} + - component: {fileID: 888898826} m_Layer: 5 m_Name: Background m_TagString: Untagged @@ -8472,6 +8664,18 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 888898823} m_CullTransparentMesh: 1 +--- !u!225 &888898826 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 888898823} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 --- !u!1 &899274034 GameObject: m_ObjectHideFlags: 0 @@ -10342,7 +10546,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.x @@ -10350,7 +10554,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_SizeDelta.x @@ -10390,11 +10594,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.x - value: 193.85 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.y - value: -22.955 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -22733,7 +22937,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.x @@ -22741,7 +22945,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_SizeDelta.x @@ -22781,11 +22985,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.x - value: 39.170002 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_AnchoredPosition.y - value: -22.955 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1909234588782507268, guid: e45c4d0b012452f40ad1dc153ae38811, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -23400,147 +23604,147 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 333912590944302499, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 333912590944302499, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 333912590944302499, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.x - value: 7 + value: 0 objectReference: {fileID: 0} - target: {fileID: 333912590944302499, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.y - value: 132.9175 + value: 0 objectReference: {fileID: 0} - target: {fileID: 333912590944302499, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.x - value: 3.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 333912590944302499, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.y - value: -214.97626 + value: 0 objectReference: {fileID: 0} - target: {fileID: 770108196109532210, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 770108196109532210, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 770108196109532210, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.x - value: 7 + value: 0 objectReference: {fileID: 0} - target: {fileID: 770108196109532210, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.y - value: 132.9175 + value: 0 objectReference: {fileID: 0} - target: {fileID: 770108196109532210, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.x - value: 3.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 770108196109532210, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.y - value: -363.49374 + value: 0 objectReference: {fileID: 0} - target: {fileID: 935420627850452094, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 935420627850452094, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 935420627850452094, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.x - value: 703.71 + value: 0 objectReference: {fileID: 0} - target: {fileID: 935420627850452094, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.y - value: 59.390003 + value: 0 objectReference: {fileID: 0} - target: {fileID: 935420627850452094, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.x - value: 351.855 + value: 0 objectReference: {fileID: 0} - target: {fileID: 935420627850452094, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.y - value: -153.81502 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1190827924149678685, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1190827924149678685, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1190827924149678685, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.x - value: 703.71 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1190827924149678685, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.y - value: 59.390003 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1190827924149678685, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.x - value: 351.855 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1190827924149678685, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.y - value: -215.87502 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1477235949744466647, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1477235949744466647, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1477235949744466647, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.x - value: 703.71 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1477235949744466647, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.y - value: 59.390003 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1477235949744466647, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.x - value: 351.855 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1477235949744466647, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.y - value: -277.935 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3543665328416834874, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3543665328416834874, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3543665328416834874, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.x - value: 703.71 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3543665328416834874, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.y - value: 59.390003 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3543665328416834874, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.x - value: 351.855 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3543665328416834874, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.y - value: -91.755005 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5483391176823058074, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_IsActive @@ -23636,75 +23840,75 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7417418181170801207, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7417418181170801207, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7417418181170801207, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.x - value: 7 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7417418181170801207, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.y - value: 132.9175 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7417418181170801207, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.x - value: 3.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7417418181170801207, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.y - value: -512.0112 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7755885942619096437, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7755885942619096437, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7755885942619096437, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.x - value: 7 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7755885942619096437, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.y - value: 132.9175 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7755885942619096437, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.x - value: 3.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7755885942619096437, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.y - value: -66.45875 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8295315770064589757, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8295315770064589757, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8295315770064589757, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.x - value: 703.71 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8295315770064589757, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_SizeDelta.y - value: 59.390003 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8295315770064589757, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.x - value: 351.855 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8295315770064589757, guid: a34b2a0441a3e2c4a96fca5080d8f203, type: 3} propertyPath: m_AnchoredPosition.y - value: -29.695002 + value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] @@ -23732,19 +23936,19 @@ PrefabInstance: m_Modifications: - target: {fileID: 1871089524602559658, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1871089524602559658, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1871089524602559658, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_AnchoredPosition.x - value: 261.665 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1871089524602559658, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_AnchoredPosition.y - value: -22.816446 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3994272294263330828, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_Pivot.x @@ -23828,19 +24032,19 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7909369483914820580, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7909369483914820580, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7909369483914820580, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_AnchoredPosition.x - value: 132.94 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7909369483914820580, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_AnchoredPosition.y - value: -32.385 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8523793110535762614, guid: 14e3225697047e04f9fc5a33f4690443, type: 3} propertyPath: m_Name @@ -24544,7 +24748,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7725792043156676869, guid: 50b5075221b823240b287cd5e6c02d64, type: 3} propertyPath: m_sharedMaterial - value: + value: objectReference: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - target: {fileID: 7725792043156676869, guid: 50b5075221b823240b287cd5e6c02d64, type: 3} propertyPath: m_fontColor32.rgba @@ -24628,3 +24832,4 @@ SceneRoots: - {fileID: 1329752847} - {fileID: 8712459775951269144} - {fileID: 65425791} + - {fileID: 356766902} diff --git a/Assets/Scripts/Characters/CharactersController.cs b/Assets/Scripts/Characters/CharactersController.cs index 41c5161..b39e066 100644 --- a/Assets/Scripts/Characters/CharactersController.cs +++ b/Assets/Scripts/Characters/CharactersController.cs @@ -60,6 +60,15 @@ namespace CharacterSystem ShowCharacter(0, onComplete); } + public void ApplyFirstCharacterColorsToBoard() + { + VisualModule visualModule = characters[0].visualModule; + Board.Instance.SetColorsImmediately( + visualModule.InnerColor, + visualModule.OutlineColor, + visualModule.CellsColor); + } + public static Character[] GetCharactersArray() => new List(I.characters).ToArray(); diff --git a/Assets/Scripts/Common/GameManager.cs b/Assets/Scripts/Common/GameManager.cs index 212f634..f6bbc82 100644 --- a/Assets/Scripts/Common/GameManager.cs +++ b/Assets/Scripts/Common/GameManager.cs @@ -95,6 +95,9 @@ public class GameManager : MonoBehaviour SetMode(mode); _isLeavingGameplay = false; + if (mode == GameMode.pve) + CharactersController.I.ApplyFirstCharacterColorsToBoard(); + menuGameplayTransit.GameplayOpened += OnGameplayOpened; menuGameplayTransit.GotoGameplay(); ControlsPerformer.Instance.SetControlable(null); diff --git a/Assets/Scripts/Gameplay/Board.cs b/Assets/Scripts/Gameplay/Board.cs index 0acaa3c..cbf4a09 100644 --- a/Assets/Scripts/Gameplay/Board.cs +++ b/Assets/Scripts/Gameplay/Board.cs @@ -32,6 +32,9 @@ public class Board : MonoBehaviour public Sequence GetColorSequence(Color innerColor, Color outlineColor, Color cellsColor, float duration) => fitter.GetColorSequence(innerColor, outlineColor, cellsColor, duration); + public void SetColorsImmediately(Color innerColor, Color outlineColor, Color cellsColor) + => fitter.SetColorsImmediately(innerColor, outlineColor, cellsColor); + public Vector2 GetMiddleStickedPosition() => new Vector2(GetXPosition(Columns/2), config.stickedYOffset); public Vector2 GetStickedPosition(int column) => new Vector2(GetXPosition(column), config.topLeftCell.position.y + config.stickedYOffset); diff --git a/Assets/Scripts/Gameplay/BoardFitter.cs b/Assets/Scripts/Gameplay/BoardFitter.cs index db0834e..0014eb7 100644 --- a/Assets/Scripts/Gameplay/BoardFitter.cs +++ b/Assets/Scripts/Gameplay/BoardFitter.cs @@ -72,6 +72,23 @@ public class BoardFitter : MonoBehaviour return sequence; } + public void SetColorsImmediately(Color innerColor, Color outlineColor, Color cellsColor) + { + _currentCellsColor = cellsColor; + _hasCurrentCellsColor = true; + + _innerLineRenderer.DOKill(); + _outlineRenderer.DOKill(); + _innerLineRenderer.color = innerColor; + _outlineRenderer.color = outlineColor; + + foreach (SpriteRenderer cellRenderer in _cellsRoot.GetComponentsInChildren(true)) + { + cellRenderer.DOKill(); + cellRenderer.color = cellsColor; + } + } + private void FitCellsRoot(float groupWidth, float groupHeight) { float rootX = -groupWidth * 0.5f; diff --git a/Assets/Scripts/UI/BackgroundDimmer.cs b/Assets/Scripts/UI/BackgroundDimmer.cs new file mode 100644 index 0000000..bfe594a --- /dev/null +++ b/Assets/Scripts/UI/BackgroundDimmer.cs @@ -0,0 +1,47 @@ +using DG.Tweening; +using UnityEngine; + +public class BackgroundDimmer : MonoBehaviour +{ + [SerializeField] private CanvasGroup _canvasGroup; + [SerializeField] private CanvasGroup _menuBackground; + [SerializeField, Range(0f, 1f)] private float _gameplayAlpha = 0.3f; + [SerializeField, Min(0f)] private float _fadeDuration = 1f; + + private Tween _dimmerFadeTween; + private Tween _menuBackgroundFadeTween; + + private void Awake() + { + _canvasGroup.alpha = 0f; + _menuBackground.alpha = 1f; + } + + private void OnDestroy() + { + _dimmerFadeTween?.Kill(); + _menuBackgroundFadeTween?.Kill(); + } + + public void ShowGameplay() + => FadeTo(_gameplayAlpha, 0f); + + public void ShowMenu() + => FadeTo(0f, 1f); + + private void FadeTo(float dimmerAlpha, float menuBackgroundAlpha) + { + _dimmerFadeTween?.Kill(); + _menuBackgroundFadeTween?.Kill(); + + _dimmerFadeTween = _canvasGroup + .DOFade(dimmerAlpha, _fadeDuration) + .SetUpdate(true); + _menuBackgroundFadeTween = _menuBackground + .DOFade(menuBackgroundAlpha, _fadeDuration) + .SetUpdate(true); + + _dimmerFadeTween.PlayForward(); + _menuBackgroundFadeTween.PlayForward(); + } +} diff --git a/Assets/Scripts/UI/BackgroundDimmer.cs.meta b/Assets/Scripts/UI/BackgroundDimmer.cs.meta new file mode 100644 index 0000000..bbef79e --- /dev/null +++ b/Assets/Scripts/UI/BackgroundDimmer.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2fe4609f7db394c4294ad8882052e849 \ No newline at end of file diff --git a/Assets/Scripts/UI/Transitions/MenuGameplayTransit.cs b/Assets/Scripts/UI/Transitions/MenuGameplayTransit.cs index 5caced0..d7dd71e 100644 --- a/Assets/Scripts/UI/Transitions/MenuGameplayTransit.cs +++ b/Assets/Scripts/UI/Transitions/MenuGameplayTransit.cs @@ -3,18 +3,21 @@ using UnityEngine; public class MenuGameplayTransit : MonoBehaviour { + public event Action GameplayOpened; + [SerializeField] private Menu _menu; [SerializeField] private GameplayLayoutController _gameplay; - - public event Action GameplayOpened; + [SerializeField] private BackgroundDimmer _backgroundDimmer; public void GotoGameplay() { + _backgroundDimmer.ShowGameplay(); _menu.Close(callback: OnMenuClosed); } public void GotoMenu() { + _backgroundDimmer.ShowMenu(); _gameplay.Close(callback: OnGameplayClosed); } @@ -22,4 +25,4 @@ public class MenuGameplayTransit : MonoBehaviour private void OnMenuOpened() => ControlsPerformer.Instance.SetControlable(_menu); private void OnMenuClosed() => _gameplay.Open(OnGameplayOpened); private void OnGameplayClosed() => _menu.Open(callback: OnMenuOpened); -} \ No newline at end of file +}