diff --git a/Assets/RoomAssets/_LightAssets/Corridor.asset b/Assets/RoomAssets/_LightAssets/Corridor.asset index 0bd70fb..0e674fc 100644 --- a/Assets/RoomAssets/_LightAssets/Corridor.asset +++ b/Assets/RoomAssets/_LightAssets/Corridor.asset @@ -22,7 +22,7 @@ MonoBehaviour: range: 15 shadows: 0 bakeToRuntimeLightmap: 1 - disableRealtimeLightsAfterBake: 0 + disableRealtimeLightsAfterBake: 1 lightmapResolution: 512 ceilingBounceIntensity: 0.3 bakedAmbientIntensity: 0.7 diff --git a/Assets/RoomAssets/_LightAssets/Laboratory.asset b/Assets/RoomAssets/_LightAssets/Laboratory.asset index 8e2a1a5..52fc6e8 100644 --- a/Assets/RoomAssets/_LightAssets/Laboratory.asset +++ b/Assets/RoomAssets/_LightAssets/Laboratory.asset @@ -22,7 +22,7 @@ MonoBehaviour: range: 15 shadows: 0 bakeToRuntimeLightmap: 1 - disableRealtimeLightsAfterBake: 0 + disableRealtimeLightsAfterBake: 1 lightmapResolution: 512 ceilingBounceIntensity: 0.3 bakedAmbientIntensity: 0.7 diff --git a/Assets/RoomAssets/_LightAssets/Office.asset b/Assets/RoomAssets/_LightAssets/Office.asset index 9e889f0..f4e7580 100644 --- a/Assets/RoomAssets/_LightAssets/Office.asset +++ b/Assets/RoomAssets/_LightAssets/Office.asset @@ -22,7 +22,7 @@ MonoBehaviour: range: 15 shadows: 0 bakeToRuntimeLightmap: 1 - disableRealtimeLightsAfterBake: 0 + disableRealtimeLightsAfterBake: 1 lightmapResolution: 512 ceilingBounceIntensity: 0.3 bakedAmbientIntensity: 0.7 diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 6ea2ab3..2c30c2e 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -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} diff --git a/Assets/_Project/Scripts/PlayerUtils/PlayerCamera.cs b/Assets/_Project/Scripts/PlayerUtils/PlayerCamera.cs index 4e263dc..974706e 100644 --- a/Assets/_Project/Scripts/PlayerUtils/PlayerCamera.cs +++ b/Assets/_Project/Scripts/PlayerUtils/PlayerCamera.cs @@ -67,6 +67,7 @@ namespace _Project.Scripts.PlayerUtils private void Update() { + if (Time.timeScale == 0f) return; HandleMouseLook(); HandleCameraAndBobbing(); } diff --git a/Assets/_Project/Scripts/PlayerUtils/PlayerPossession.cs b/Assets/_Project/Scripts/PlayerUtils/PlayerPossession.cs index bee67df..87600bc 100644 --- a/Assets/_Project/Scripts/PlayerUtils/PlayerPossession.cs +++ b/Assets/_Project/Scripts/PlayerUtils/PlayerPossession.cs @@ -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(); 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); diff --git a/Assets/_Project/Scripts/PlayerUtils/PlayerUI.cs b/Assets/_Project/Scripts/PlayerUtils/PlayerUI.cs index 44bf221..e33adc0 100644 --- a/Assets/_Project/Scripts/PlayerUtils/PlayerUI.cs +++ b/Assets/_Project/Scripts/PlayerUtils/PlayerUI.cs @@ -1,4 +1,6 @@ using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.SceneManagement; namespace _Project.Scripts.PlayerUtils { @@ -7,20 +9,81 @@ 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; + float speed = movement.CurrentSpeed; float csUnits = speed * 38.5f; GUIStyle style = new GUIStyle { fontSize = 22, fontStyle = FontStyle.Bold }; @@ -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(); + } + } } } \ No newline at end of file