готово ко 2 кт

This commit is contained in:
vladislove 2026-10-21 23:23:29 +03:00
parent 0f9a539460
commit 5bd4118b23
7 changed files with 796 additions and 21 deletions

View File

@ -22,7 +22,7 @@ MonoBehaviour:
range: 15
shadows: 0
bakeToRuntimeLightmap: 1
disableRealtimeLightsAfterBake: 0
disableRealtimeLightsAfterBake: 1
lightmapResolution: 512
ceilingBounceIntensity: 0.3
bakedAmbientIntensity: 0.7

View File

@ -22,7 +22,7 @@ MonoBehaviour:
range: 15
shadows: 0
bakeToRuntimeLightmap: 1
disableRealtimeLightsAfterBake: 0
disableRealtimeLightsAfterBake: 1
lightmapResolution: 512
ceilingBounceIntensity: 0.3
bakedAmbientIntensity: 0.7

View File

@ -22,7 +22,7 @@ MonoBehaviour:
range: 15
shadows: 0
bakeToRuntimeLightmap: 1
disableRealtimeLightsAfterBake: 0
disableRealtimeLightsAfterBake: 1
lightmapResolution: 512
ceilingBounceIntensity: 0.3
bakedAmbientIntensity: 0.7

View File

@ -1604,6 +1604,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1230166625}
- {fileID: 151380773}
- {fileID: 474561345}
- {fileID: 642913449}
m_Father: {fileID: 0}
@ -2791,6 +2792,40 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a08f59b910c8446a681d1932a4ffe269, type: 3}
--- !u!1 &151380772
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 151380773}
m_Layer: 0
m_Name: LosePanel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &151380773
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 151380772}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 70.604996, y: -532.7511, z: -540}
m_LocalScale: {x: 1350, y: 1350, z: 1350}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1487771466}
- {fileID: 1988535219}
- {fileID: 1160928869}
m_Father: {fileID: 101073168}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &152024676
PrefabInstance:
m_ObjectHideFlags: 0
@ -14256,6 +14291,143 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 166dc75935ef5473eb1dea7565c83806, type: 3}
--- !u!1 &748740406
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 748740407}
- component: {fileID: 748740409}
- component: {fileID: 748740408}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &748740407
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 748740406}
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: 1472328273}
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 &748740408
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 748740406}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
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_text: Restart
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 80
m_fontSizeBase: 80
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 17
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656bu
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &748740409
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 748740406}
m_CullTransparentMesh: 1
--- !u!1001 &750249704
PrefabInstance:
m_ObjectHideFlags: 0
@ -22647,6 +22819,70 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c1c288bb2505b4e2d9e83e36cc85d196, type: 3}
--- !u!1 &1160928868
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1160928869}
- component: {fileID: 1160928870}
m_Layer: 5
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1160928869
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1160928868}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.4}
m_LocalScale: {x: 0.00074074074, y: 0.00074074074, z: 0.00074074074}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1920115621}
- {fileID: 1472328273}
m_Father: {fileID: 151380773}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: -0.050079346, y: 0.548}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1160928870
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1160928868}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 4
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &1161353997
GameObject:
m_ObjectHideFlags: 0
@ -28231,6 +28467,139 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 51510de34f82041149d25090ec962e10, type: 3}
--- !u!1 &1472328272
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1472328273}
- component: {fileID: 1472328276}
- component: {fileID: 1472328275}
- component: {fileID: 1472328274}
m_Layer: 5
m_Name: Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1472328273
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1472328272}
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: 748740407}
m_Father: {fileID: 1160928869}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: -250}
m_SizeDelta: {x: 500, y: 300}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1472328274
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1472328272}
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: 1472328275}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 217181661}
m_TargetAssemblyTypeName: _Project.Scripts.UIPanel, Assembly-CSharp
m_MethodName: ReloadScene
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 &1472328275
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1472328272}
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.5471698, g: 0.17292629, b: 0.17292629, a: 0.40392157}
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &1472328276
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1472328272}
m_CullTransparentMesh: 1
--- !u!1001 &1473958037
PrefabInstance:
m_ObjectHideFlags: 0
@ -28598,6 +28967,81 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1484500462}
m_CullTransparentMesh: 1
--- !u!1 &1487771465
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1487771466}
- component: {fileID: 1487771468}
- component: {fileID: 1487771467}
m_Layer: 5
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1487771466
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1487771465}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.4}
m_LocalScale: {x: 0.00074074074, y: 0.00074074074, z: 0.00074074074}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 151380773}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: -0.05230713, y: 0.5057373}
m_SizeDelta: {x: 4000, y: 4000}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1487771467
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1487771465}
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: 0, b: 0, a: 0.03529412}
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: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &1487771468
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1487771465}
m_CullTransparentMesh: 1
--- !u!1001 &1492777248
PrefabInstance:
m_ObjectHideFlags: 0
@ -36370,6 +36814,143 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 16ee3b61fbc364e77a105a671c00086e, type: 3}
--- !u!1 &1920115620
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1920115621}
- component: {fileID: 1920115623}
- component: {fileID: 1920115622}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1920115621
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1920115620}
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: 1160928869}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: -50}
m_SizeDelta: {x: 500, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1920115622
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1920115620}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
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_text: YOU LOSE!
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4279238911
m_fontColor: {r: 1, g: 0, b: 0.06252837, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 80
m_fontSizeBase: 80
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656bu
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &1920115623
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1920115620}
m_CullTransparentMesh: 1
--- !u!1001 &1922879015
PrefabInstance:
m_ObjectHideFlags: 0
@ -37809,6 +38390,81 @@ PrefabInstance:
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 81044204068d943dd8e46160655d2108, type: 3}
--- !u!1 &1988535218
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1988535219}
- component: {fileID: 1988535222}
- component: {fileID: 1988535221}
m_Layer: 5
m_Name: LosePanel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1988535219
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1988535218}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.4}
m_LocalScale: {x: 0.00074074074, y: 0.00074074074, z: 0.00074074074}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 151380773}
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.0523, y: 0.39463043}
m_SizeDelta: {x: 800, y: 600}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1988535221
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1988535218}
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.1792453, g: 0.15641688, b: 0.15641688, 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: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &1988535222
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1988535218}
m_CullTransparentMesh: 1
--- !u!1 &1990798552
GameObject:
m_ObjectHideFlags: 0
@ -43240,6 +43896,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::_Project.Scripts.PlayerUtils.PlayerUI
showHUD: 1
losePanel: {fileID: 151380772}
--- !u!4 &5016588167603968964 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1672666446545052606, guid: 51510de34f82041149d25090ec962e10, type: 3}

View File

@ -67,6 +67,7 @@ namespace _Project.Scripts.PlayerUtils
private void Update()
{
if (Time.timeScale == 0f) return;
HandleMouseLook();
HandleCameraAndBobbing();
}

View File

@ -1,4 +1,5 @@
using System.Collections;
using System;
using System.Collections;
using UnityEngine;
using UnityEngine.InputSystem;
@ -20,20 +21,22 @@ namespace _Project.Scripts.PlayerUtils
[Header("Визуал Сферы Зоны Вселения")]
[Tooltip("Если true — сфера рисуется вокруг врага (показывая зону, куда надо войти). Если false — вокруг игрока.")]
[SerializeField] private bool centerSphereOnTarget = true;
[SerializeField] private Color zoneReadyColor = new Color(0.1f, 0.95f, 1f, 0.10f); // Враг в зоне (можно жать E)
[SerializeField] private Color zoneOutOfRangeColor = new Color(1f, 0.35f, 0.35f, 0.06f); // Навёлся, но далеко
[SerializeField] private Color zoneReadyColor = new Color(0.1f, 0.95f, 1f, 0.10f);
[SerializeField] private Color zoneOutOfRangeColor = new Color(1f, 0.35f, 0.35f, 0.06f);
[Header("Замедление времени в форме Духа")]
[SerializeField, Range(0.1f, 1f)] private float spiritTimeScale = 0.45f;
// Ивент окончательной смерти игрока (когда убили в форме Духа)
public event Action OnPlayerDied;
public BodyProfile CurrentProfile { get; private set; }
public bool IsInSpiritForm => CurrentProfile != null && CurrentProfile.bodyClass == BodyClass.Spirit;
public bool IsDead { get; private set; }
public float CurrentHealth { get; private set; }
public float MaxHealth => CurrentProfile != null ? CurrentProfile.maxHealth : 25f;
// Враг, на которого наведён прицел (на любом расстоянии до maxAimLookDistance)
public EnemyAI AimedEnemy { get; private set; }
// Находится ли этот враг внутри сферы вселения (possessRange)
public bool IsTargetInPossessZone { get; private set; }
public float PlayerTimeMultiplier =>
@ -43,11 +46,9 @@ namespace _Project.Scripts.PlayerUtils
private bool _isTransitioning;
private float _invulnerableTimer;
// Полупрозрачная сфера зоны вселения
private GameObject _zoneSphere;
private Renderer _zoneRenderer;
private Material _zoneMaterial;
private float _currentZoneAlpha;
private void Awake()
{
@ -68,7 +69,6 @@ namespace _Project.Scripts.PlayerUtils
_zoneSphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
_zoneSphere.name = "PossessionZoneSphere";
// Убираем коллайдер, это чисто визуальная голограмма зоны
var col = _zoneSphere.GetComponent<Collider>();
if (col != null) Destroy(col);
@ -76,7 +76,6 @@ namespace _Project.Scripts.PlayerUtils
_zoneRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
_zoneRenderer.receiveShadows = false;
// Используем прозрачный шейдер, который рисуется поверх и мягко подсвечивает площадь
Shader shader = Shader.Find("Sprites/Default");
_zoneMaterial = new Material(shader);
_zoneMaterial.color = Color.clear;
@ -87,7 +86,9 @@ namespace _Project.Scripts.PlayerUtils
private void Update()
{
if (IsDead) return;
if (_invulnerableTimer > 0f) _invulnerableTimer -= Time.unscaledDeltaTime;
if (_isTransitioning)
{
if (_zoneSphere != null) _zoneSphere.SetActive(false);
@ -127,11 +128,9 @@ namespace _Project.Scripts.PlayerUtils
{
if (!_zoneSphere.activeSelf) _zoneSphere.SetActive(true);
// Диаметр сферы = 2 * радиус (possessRange)
float diameter = possessRange * 2f;
_zoneSphere.transform.localScale = new Vector3(diameter, diameter, diameter);
// Центр сферы: либо на враге, либо на игроке
Vector3 center = centerSphereOnTarget ? AimedEnemy.transform.position : transform.position;
_zoneSphere.transform.position = center;
@ -152,12 +151,10 @@ namespace _Project.Scripts.PlayerUtils
{
if (Keyboard.current == null) return;
// Клавиша E — Вселиться, если враг под прицелом И находится внутри сферы!
if (Keyboard.current.eKey.wasPressedThisFrame && AimedEnemy != null && IsTargetInPossessZone)
{
StartCoroutine(PossessRoutine(AimedEnemy));
}
// Клавиша Q — Покинуть тело
else if (Keyboard.current.qKey.wasPressedThisFrame && !IsInSpiritForm)
{
EnterSpiritForm(true);
@ -199,6 +196,8 @@ namespace _Project.Scripts.PlayerUtils
public void EnterSpiritForm(bool ejectImpulse)
{
if (IsDead) return;
ApplyProfile(spiritProfile, spiritProfile.maxHealth);
_invulnerableTimer = 0.5f;
@ -225,7 +224,7 @@ namespace _Project.Scripts.PlayerUtils
public void TakeDamage(float amount)
{
if (_invulnerableTimer > 0f || _isTransitioning) return;
if (IsDead || _invulnerableTimer > 0f || _isTransitioning) return;
CurrentHealth -= amount;
@ -233,18 +232,38 @@ namespace _Project.Scripts.PlayerUtils
{
if (!IsInSpiritForm)
{
// Тело уничтожено — выбрасывает обратно в Духа
Debug.Log("Носитель уничтожен! Выброс в форму Духа!");
EnterSpiritForm(true);
}
else
{
CurrentHealth = 0f;
Debug.Log("ДУХ УНИЧТОЖЕН! ИГРА ОКОНЧЕНА.");
EnterSpiritForm(false);
// Убили самого Духа — проигрыш!
Die();
}
}
}
private void Die()
{
if (IsDead) return;
IsDead = true;
CurrentHealth = 0f;
if (_zoneSphere != null) _zoneSphere.SetActive(false);
// Останавливаем время и отключаем управление персонажа
Time.timeScale = 0f;
Player.Instance.Controls.Player.Disable();
// Освобождаем курсор мыши для клика по кнопкам панели проигрыша
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
Debug.Log("ДУХ РАЗВЕЯН! Игрок погиб.");
OnPlayerDied?.Invoke();
}
private void OnDestroy()
{
if (_zoneSphere != null) Destroy(_zoneSphere);

View File

@ -1,4 +1,6 @@
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
namespace _Project.Scripts.PlayerUtils
{
@ -7,17 +9,78 @@ namespace _Project.Scripts.PlayerUtils
[Header("Настройки Интерфейса")]
[SerializeField] private bool showHUD = true;
[Header("Панель проигрыша (Canvas UI)")]
[Tooltip("Перетащи сюда панель поражения из Canvas. Если пусто — отрисуется встроенная панель проигрыша.")]
[SerializeField] private GameObject losePanel;
private PlayerMovement movement;
private PlayerPossession possession;
private bool isGameOver = false;
private void Start()
{
movement = Player.Instance.Movement;
possession = Player.Instance.Possession;
if (losePanel != null)
{
losePanel.SetActive(false);
}
if (possession != null)
{
possession.OnPlayerDied += HandlePlayerDied;
}
}
private void OnDestroy()
{
if (possession != null)
{
possession.OnPlayerDied -= HandlePlayerDied;
}
}
private void HandlePlayerDied()
{
isGameOver = true;
if (losePanel != null)
{
losePanel.SetActive(true);
}
}
private void Update()
{
// Быстрый перезапуск по клавише R после смерти
if (isGameOver && Keyboard.current != null && Keyboard.current.rKey.wasPressedThisFrame)
{
RestartLevel();
}
}
// Этот метод также можно повесить на кнопку (Button -> OnClick) на твоём Canvas!
public void RestartLevel()
{
Time.timeScale = 1f;
Time.fixedDeltaTime = 0.02f;
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
private void OnGUI()
{
// 1. Если игрок погиб, а кастомная Canvas-панель не назначена — рисуем экран проигрыша
if (isGameOver)
{
if (losePanel == null)
{
DrawFallbackLoseScreen();
}
return;
}
// 2. Обычный боевой HUD
if (!showHUD || movement == null) return;
float speed = movement.CurrentSpeed;
@ -56,5 +119,40 @@ namespace _Project.Scripts.PlayerUtils
}
}
}
private void DrawFallbackLoseScreen()
{
// Полупрозрачное тёмно-красное/чёрное затемнение на весь экран
Color prevColor = GUI.color;
GUI.color = new Color(0.08f, 0.01f, 0.02f, 0.85f);
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), Texture2D.whiteTexture);
GUI.color = prevColor;
GUIStyle titleStyle = new GUIStyle
{
fontSize = 48,
fontStyle = FontStyle.Bold,
alignment = TextAnchor.MiddleCenter
};
titleStyle.normal.textColor = new Color(1f, 0.2f, 0.25f);
GUIStyle subStyle = new GUIStyle
{
fontSize = 22,
alignment = TextAnchor.MiddleCenter
};
subStyle.normal.textColor = new Color(0.85f, 0.85f, 0.85f);
float cx = Screen.width / 2f;
float cy = Screen.height / 2f;
GUI.Label(new Rect(cx - 300f, cy - 110f, 600f, 60f), "ДУХ МЩЕНИЯ РАЗВЕЯН", titleStyle);
GUI.Label(new Rect(cx - 300f, cy - 45f, 600f, 40f), "Вы потеряли последнюю связь с этим миром.", subStyle);
if (GUI.Button(new Rect(cx - 150f, cy + 25f, 300f, 50f), "ПЕРЕЗАПУСТИТЬ ЭТАЖ [R]"))
{
RestartLevel();
}
}
}
}