From 13c15cb5084f805b1dc928cfae362a85ea22d678 Mon Sep 17 00:00:00 2001 From: Tore Bergebakken Date: Sat, 16 Mar 2024 18:30:30 +0100 Subject: [PATCH] Add basic "pause" menu --- Assets/Prefabs/Input/Player.prefab | 715 +++++++++++++++++- Assets/Scenes/CraterTown.unity | 2 +- .../Input/PlayerControls.inputactions | 204 +++-- Assets/Scripts/Augment/GunController.cs | 9 +- Assets/Scripts/Control&Input/InputManager.cs | 8 + .../PlayerInputManagerController.cs | 12 +- .../Scripts/Control&Input/PlayerMovement.cs | 50 +- Assets/Scripts/Gamestate/PlayerManager.cs | 39 +- Assets/Scripts/UI/PauseMenu.cs | 50 ++ Assets/Scripts/UI/PauseMenu.cs.meta | 11 + Assets/Scripts/UI/PlayerHUDController.cs | 3 + 11 files changed, 1007 insertions(+), 96 deletions(-) create mode 100644 Assets/Scripts/UI/PauseMenu.cs create mode 100644 Assets/Scripts/UI/PauseMenu.cs.meta diff --git a/Assets/Prefabs/Input/Player.prefab b/Assets/Prefabs/Input/Player.prefab index f73b0bc67..a78e1a010 100644 --- a/Assets/Prefabs/Input/Player.prefab +++ b/Assets/Prefabs/Input/Player.prefab @@ -95,6 +95,7 @@ MonoBehaviour: steppingIgnoreMask: serializedVersion: 2 m_Bits: 1 + ShouldNotRespondToInputs: 0 --- !u!23 &71015680234268065 MeshRenderer: m_ObjectHideFlags: 0 @@ -278,7 +279,7 @@ MonoBehaviour: cameraParent: {fileID: 8159248892074053650} ragdollMask: serializedVersion: 2 - m_Bits: 2147483647 + m_Bits: 4294967295 --- !u!82 &7607358150439154286 AudioSource: m_ObjectHideFlags: 0 @@ -885,7 +886,7 @@ GameObject: - component: {fileID: 1053768020010034934} - component: {fileID: 4217260705503384286} m_Layer: 5 - m_Name: Panel + m_Name: DeathScreen m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1327,6 +1328,7 @@ RectTransform: - {fileID: 1417967732049705392} - {fileID: 4777486860895138767} - {fileID: 4412023050163012269} + - {fileID: 9062846435806837360} m_Father: {fileID: 71015680234268071} m_RootOrder: -1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1361,6 +1363,7 @@ MonoBehaviour: deathScreen: {fileID: 1029316632486890240} deathText: {fileID: 9172283963218471322} damageBorderFlashDuration: 0.2 + pauseMenu: {fileID: 9026255908890535554} popupSpammer: {fileID: 6535424167945181997} speedLines: {fileID: 1712702864845135441} speedLineEase: @@ -1437,7 +1440,7 @@ MonoBehaviour: m_ScaleFactor: 1 m_ReferenceResolution: {x: 800, y: 600} m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 + m_MatchWidthOrHeight: 1 m_PhysicalUnit: 3 m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 @@ -1624,6 +1627,143 @@ SortingGroup: m_SortingLayer: 0 m_SortingOrder: 1 m_SortAtRoot: 0 +--- !u!1 &4031715069306126866 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8959131022343325934} + - component: {fileID: 2960949326746526939} + - component: {fileID: 5186343667818732479} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8959131022343325934 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4031715069306126866} + 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: 9062846435806837360} + m_RootOrder: -1 + 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: 800, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2960949326746526939 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4031715069306126866} + m_CullTransparentMesh: 1 +--- !u!114 &5186343667818732479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4031715069306126866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + 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: 'HOWDY + + PARDNER' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: aa99fff0688574ba78204625170fa6e0, type: 2} + m_sharedMaterial: {fileID: 7168929159514863053, guid: aa99fff0688574ba78204625170fa6e0, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, 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: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: -26.7 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 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!1 &4536483048541249167 GameObject: m_ObjectHideFlags: 0 @@ -2003,7 +2143,7 @@ RectTransform: m_GameObject: {fileID: 5696341598124916686} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 1 m_Children: [] m_Father: {fileID: 8513528357214213258} @@ -2069,8 +2209,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 0.6 - m_fontSizeBase: 0.6 + m_fontSize: 6 + m_fontSizeBase: 6 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 @@ -2123,6 +2263,96 @@ SortingGroup: m_SortingLayer: 0 m_SortingOrder: 3 m_SortAtRoot: 0 +--- !u!1 &6761098110666084126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9062846435806837360} + - component: {fileID: 31868674008252044} + - component: {fileID: 3547151340487049972} + - component: {fileID: 9026255908890535554} + m_Layer: 5 + m_Name: PauseMenu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9062846435806837360 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6761098110666084126} + 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: 8959131022343325934} + - {fileID: 7961745893845564163} + - {fileID: 7972565997110201751} + - {fileID: 3722375041483207122} + m_Father: {fileID: 3570743071879246586} + m_RootOrder: -1 + 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!222 &31868674008252044 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6761098110666084126} + m_CullTransparentMesh: 1 +--- !u!114 &3547151340487049972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6761098110666084126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 20 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &9026255908890535554 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6761098110666084126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c1ad5a90f418f9b49957689cdff9f045, type: 3} + m_Name: + m_EditorClassIdentifier: + initiallySelectedButton: {fileID: 3053268689299130685} --- !u!1 &6847997470167737139 GameObject: m_ObjectHideFlags: 0 @@ -2406,6 +2636,141 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7778794485325406989 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7961745893845564163} + - component: {fileID: 7436160053416547595} + - component: {fileID: 884870747379211561} + m_Layer: 5 + m_Name: Subtitle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7961745893845564163 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7778794485325406989} + 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: 9062846435806837360} + m_RootOrder: -1 + 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: 600, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7436160053416547595 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7778794485325406989} + m_CullTransparentMesh: 1 +--- !u!114 &884870747379211561 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7778794485325406989} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + 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: The game is NOT paused + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: aa99fff0688574ba78204625170fa6e0, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: a5dba56b90a3ca6978a283b93ad4fe3f, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, 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: 40 + m_fontSizeBase: 40 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 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!1 &8105111567943840941 GameObject: m_ObjectHideFlags: 0 @@ -3281,3 +3646,341 @@ Transform: m_CorrespondingSourceObject: {fileID: 6673173064753799651, guid: 27ac4408b426ae745a1792dde18c79ba, type: 3} m_PrefabInstance: {fileID: 3287810421515891185} m_PrefabAsset: {fileID: 0} +--- !u!1001 &4554590363426943075 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 9062846435806837360} + m_Modifications: + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Navigation.m_SelectOnUp + value: + objectReference: {fileID: 8598450697563878776} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 8598450697563878776} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 9026255908890535554} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Resume + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: PauseMenu, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 3765489543879290160, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_text + value: Resume + objectReference: {fileID: 0} + - target: {fileID: 3765489543879290160, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_fontSize + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_RootOrder + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_SizeDelta.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7072107538278606930, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Name + value: Resume + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e472bbf090cca566cae93eec176f8dff, type: 3} +--- !u!114 &3053268689299130685 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + m_PrefabInstance: {fileID: 4554590363426943075} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7972565997110201751 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + m_PrefabInstance: {fileID: 4554590363426943075} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &7077847880157137958 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 9062846435806837360} + m_Modifications: + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Navigation.m_SelectOnUp + value: + objectReference: {fileID: 3053268689299130685} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Navigation.m_SelectOnDown + value: + objectReference: {fileID: 3053268689299130685} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 9026255908890535554} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Leave + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: MoveToDefault + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[2].m_MethodName + value: + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: PauseMenu, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: MainMenuMoveCamera, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[2].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: + objectReference: {fileID: 0} + - target: {fileID: 3765489543879290160, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_text + value: End Match + objectReference: {fileID: 0} + - target: {fileID: 3765489543879290160, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_fontSize + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_RootOrder + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_SizeDelta.x + value: 400 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_SizeDelta.y + value: 60 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7072107538278606930, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + propertyPath: m_Name + value: Leave + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e472bbf090cca566cae93eec176f8dff, type: 3} +--- !u!224 &3722375041483207122 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 5877506774103653876, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + m_PrefabInstance: {fileID: 7077847880157137958} + m_PrefabAsset: {fileID: 0} +--- !u!114 &8598450697563878776 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1543121137935169886, guid: e472bbf090cca566cae93eec176f8dff, type: 3} + m_PrefabInstance: {fileID: 7077847880157137958} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Scenes/CraterTown.unity b/Assets/Scenes/CraterTown.unity index bfebacd27..e97bbee3a 100644 --- a/Assets/Scenes/CraterTown.unity +++ b/Assets/Scenes/CraterTown.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 662445327} - m_IndirectSpecularColor: {r: 0.09672264, g: 0.24035963, b: 0.4926994, a: 1} + m_IndirectSpecularColor: {r: 0.03905226, g: 0.20194778, b: 0.4885325, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: diff --git a/Assets/ScriptableObjects/Input/PlayerControls.inputactions b/Assets/ScriptableObjects/Input/PlayerControls.inputactions index 67f172272..12fe311ff 100644 --- a/Assets/ScriptableObjects/Input/PlayerControls.inputactions +++ b/Assets/ScriptableObjects/Input/PlayerControls.inputactions @@ -58,6 +58,15 @@ "processors": "", "interactions": "", "initialStateCheck": false + }, + { + "name": "Exit", + "type": "Button", + "id": "59e83c07-8e52-4bf8-9438-5a6d37054de2", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false } ], "bindings": [ @@ -284,7 +293,7 @@ { "name": "", "id": "0030f558-1dce-4039-95e4-2c065ead1db1", - "path": "/escape", + "path": "/backspace", "interactions": "", "processors": "", "groups": "MouseAndKeyboard", @@ -478,6 +487,50 @@ "action": "LeftTab", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "9a1572fe-6205-45fc-8244-3502f75c7d39", + "path": "/select", + "interactions": "", + "processors": "", + "groups": "", + "action": "Exit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8f4504be-133a-4f66-b0d3-793290c87279", + "path": "/start", + "interactions": "", + "processors": "", + "groups": "", + "action": "Exit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "846526c8-752a-4905-9e41-6ec6d2d80a37", + "path": "/escape", + "interactions": "", + "processors": "", + "groups": "", + "action": "Exit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3670069a-df39-40ea-8a7c-c4b797451183", + "path": "/p", + "interactions": "", + "processors": "", + "groups": "", + "action": "Exit", + "isComposite": false, + "isPartOfComposite": false } ] }, @@ -494,15 +547,6 @@ "interactions": "", "initialStateCheck": false }, - { - "name": "Cancel", - "type": "Button", - "id": "6c813086-0914-48e7-a994-f4c36f04f63c", - "expectedControlType": "Button", - "processors": "", - "interactions": "", - "initialStateCheck": false - }, { "name": "Move", "type": "Value", @@ -556,6 +600,15 @@ "processors": "", "interactions": "", "initialStateCheck": false + }, + { + "name": "Exit", + "type": "Button", + "id": "6c813086-0914-48e7-a994-f4c36f04f63c", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false } ], "bindings": [ @@ -581,28 +634,6 @@ "isComposite": false, "isPartOfComposite": false }, - { - "name": "", - "id": "898c171c-67f9-4de3-b99e-3eea3e5a4dda", - "path": "/buttonEast", - "interactions": "", - "processors": "", - "groups": "Gamepad", - "action": "Cancel", - "isComposite": false, - "isPartOfComposite": false - }, - { - "name": "", - "id": "fe8cd325-d420-4946-a7f0-40e4e1c72e6e", - "path": "/escape", - "interactions": "", - "processors": "", - "groups": "MouseAndKeyboard", - "action": "Cancel", - "isComposite": false, - "isPartOfComposite": false - }, { "name": "", "id": "65cc362b-78a9-46ba-b196-d471cbc76387", @@ -800,6 +831,50 @@ "action": "Interact", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "898c171c-67f9-4de3-b99e-3eea3e5a4dda", + "path": "/select", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Exit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b5e45b4a-8d1c-4a6b-90af-6270f64a9acf", + "path": "/start", + "interactions": "", + "processors": "", + "groups": "", + "action": "Exit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "fe8cd325-d420-4946-a7f0-40e4e1c72e6e", + "path": "/escape", + "interactions": "", + "processors": "", + "groups": "MouseAndKeyboard", + "action": "Exit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "be69b80f-1ccc-473a-9084-888986ef60df", + "path": "/p", + "interactions": "", + "processors": "", + "groups": "", + "action": "Exit", + "isComposite": false, + "isPartOfComposite": false } ] }, @@ -826,27 +901,27 @@ "initialStateCheck": true }, { - "name": "Cancel", + "name": "Select", "type": "Button", - "id": "9e0bf922-98f3-49e8-9ea8-7897bbb5249f", + "id": "81e31669-1c45-46b3-b49d-6daa89095b81", "expectedControlType": "Button", "processors": "", "interactions": "", "initialStateCheck": false }, { - "name": "Select", + "name": "Interact", "type": "Button", - "id": "81e31669-1c45-46b3-b49d-6daa89095b81", + "id": "360c3d67-b75e-4f1a-8700-e3d62ef4f857", "expectedControlType": "Button", "processors": "", "interactions": "", "initialStateCheck": false }, { - "name": "Interact", + "name": "Exit", "type": "Button", - "id": "360c3d67-b75e-4f1a-8700-e3d62ef4f857", + "id": "9e0bf922-98f3-49e8-9ea8-7897bbb5249f", "expectedControlType": "Button", "processors": "", "interactions": "", @@ -944,67 +1019,78 @@ }, { "name": "", - "id": "4b0e4d83-9aaf-4d27-8ef7-830284a247cc", - "path": "/buttonEast", + "id": "5d89d078-c0ba-4983-9a06-ce3dd87d1f5d", + "path": "/buttonSouth", "interactions": "", "processors": "", "groups": "Gamepad", - "action": "Cancel", + "action": "Select", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "56f3ff90-eaed-417f-806b-5c5933c8b942", - "path": "/escape", + "id": "6ffc950e-93eb-4518-b7b3-03abbd49ce61", + "path": "/space", "interactions": "", "processors": "", "groups": "MouseAndKeyboard", - "action": "Cancel", + "action": "Select", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "5d89d078-c0ba-4983-9a06-ce3dd87d1f5d", - "path": "/buttonSouth", + "id": "221ae938-7c34-4327-a946-e4033836ec8b", + "path": "/buttonNorth", "interactions": "", "processors": "", - "groups": "Gamepad", - "action": "Select", + "groups": "", + "action": "Interact", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "6ffc950e-93eb-4518-b7b3-03abbd49ce61", - "path": "/space", + "id": "74ac9ab7-57d5-4345-94df-a44090407788", + "path": "/f", "interactions": "", "processors": "", - "groups": "MouseAndKeyboard", - "action": "Select", + "groups": "", + "action": "Interact", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "221ae938-7c34-4327-a946-e4033836ec8b", - "path": "/buttonNorth", + "id": "4b0e4d83-9aaf-4d27-8ef7-830284a247cc", + "path": "/select", "interactions": "", "processors": "", - "groups": "", - "action": "Interact", + "groups": "Gamepad", + "action": "Exit", "isComposite": false, "isPartOfComposite": false }, { "name": "", - "id": "74ac9ab7-57d5-4345-94df-a44090407788", - "path": "/f", + "id": "55d97c0c-c237-4916-8da5-6e4d5ee4e368", + "path": "/start", "interactions": "", "processors": "", "groups": "", - "action": "Interact", + "action": "Exit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "56f3ff90-eaed-417f-806b-5c5933c8b942", + "path": "/escape", + "interactions": "", + "processors": "", + "groups": "MouseAndKeyboard", + "action": "Exit", "isComposite": false, "isPartOfComposite": false } diff --git a/Assets/Scripts/Augment/GunController.cs b/Assets/Scripts/Augment/GunController.cs index 473a29257..1d8a430d5 100644 --- a/Assets/Scripts/Augment/GunController.cs +++ b/Assets/Scripts/Augment/GunController.cs @@ -49,13 +49,18 @@ public void SetPlayer(PlayerManager player) Player = player; if (!Player.inputManager) return; - Player.inputManager.onZoomPerformed += OnZoom; - Player.inputManager.onZoomCanceled += OnZoomCanceled; + SetPlayerInput(Player.inputManager); Player.inputManager.GetComponentInChildren().body = Player.GetComponent().Body; if (MatchController.Singleton) MatchController.Singleton.onRoundEnd += CancelZoom; } + public void SetPlayerInput(InputManager input) + { + input.onZoomPerformed += OnZoom; + input.onZoomCanceled += OnZoomCanceled; + } + private AugmentAnimator barrelAnimator; private bool isFiring = false; diff --git a/Assets/Scripts/Control&Input/InputManager.cs b/Assets/Scripts/Control&Input/InputManager.cs index f0b651f61..613de0be8 100644 --- a/Assets/Scripts/Control&Input/InputManager.cs +++ b/Assets/Scripts/Control&Input/InputManager.cs @@ -16,6 +16,7 @@ public class InputManager : MonoBehaviour // Menu-related public InputEvent onSelect; public InputEvent onCancel; + public InputEvent onExit; public InputEvent onLeftTab; public InputEvent onRightTab; public InputEvent onAnyKey; @@ -79,6 +80,7 @@ public void AddListeners() playerInput.actions["Join"].performed += AnyKey; playerInput.actions["Select"].performed += Select; playerInput.actions["Cancel"].performed += Cancel; + playerInput.actions["Exit"].performed += Exit; playerInput.actions["Move"].performed += Move; playerInput.actions["Move"].canceled += Move; playerInput.actions["LeftTab"].performed += LeftTab; @@ -159,6 +161,7 @@ private void RemoveAllListeners() // Abusing that empty delegate bodies are defined as null to remove all invocation lists. onSelect = null; onCancel = null; + onExit = null; onMovePerformed = null; onMoveCanceled = null; onLeftTab = null; @@ -196,6 +199,11 @@ private void Cancel(InputAction.CallbackContext ctx) onCancel?.Invoke(ctx); } + private void Exit(InputAction.CallbackContext ctx) + { + onExit?.Invoke(ctx); + } + private void LeftTab(InputAction.CallbackContext ctx) { onLeftTab?.Invoke(ctx); diff --git a/Assets/Scripts/Control&Input/PlayerInputManagerController.cs b/Assets/Scripts/Control&Input/PlayerInputManagerController.cs index 3d5c7bc33..981498587 100644 --- a/Assets/Scripts/Control&Input/PlayerInputManagerController.cs +++ b/Assets/Scripts/Control&Input/PlayerInputManagerController.cs @@ -79,10 +79,7 @@ public void ChangeInputMaps(string mapNameOrId) { playerInputs.ForEach(playerInput => { - playerInput.playerInput.SwitchCurrentActionMap(mapNameOrId); - playerInput.RemoveListeners(); - playerInput.AddListeners(); - + ChangeInputMapForPlayer(mapNameOrId, playerInput); // Free the playerInputs from their mortail coils (Player prefab or similar assets) var previousParent = playerInput.transform.parent; playerInput.transform.parent = null; @@ -91,4 +88,11 @@ public void ChangeInputMaps(string mapNameOrId) Destroy(previousParent.gameObject); }); } + + public void ChangeInputMapForPlayer(string mapNameOrId, InputManager playerInput) + { + playerInput.playerInput.SwitchCurrentActionMap(mapNameOrId); + playerInput.RemoveListeners(); + playerInput.AddListeners(); + } } diff --git a/Assets/Scripts/Control&Input/PlayerMovement.cs b/Assets/Scripts/Control&Input/PlayerMovement.cs index 7451a1a12..b90435579 100644 --- a/Assets/Scripts/Control&Input/PlayerMovement.cs +++ b/Assets/Scripts/Control&Input/PlayerMovement.cs @@ -129,6 +129,8 @@ public class PlayerMovement : MonoBehaviour private int cameraCrouchPerformedTween; private int gunCrouchCanceledTween; private int cameraCrouchCanceledTween; + private int zoomFovTween; + private int zoomGunTween; [Header("Step climb")] [SerializeField] @@ -142,6 +144,8 @@ public class PlayerMovement : MonoBehaviour [SerializeField] protected LayerMask steppingIgnoreMask; + public bool ShouldNotRespondToInputs = false; + protected virtual void Start() { @@ -154,17 +158,12 @@ protected virtual void Start() /// /// Function for setting a playerInput and adding movement related listeners to it. /// - /// - public void SetPlayerInput(InputManager player) + /// + public void SetPlayerInput(InputManager input) { - inputManager = player; + ReassignPlayerInput(input); var playerManager = GetComponent(); gunHolder = playerManager.GunHolder.gameObject; - inputManager.onSelect += OnJump; - inputManager.onCrouchPerformed += OnCrouch; - inputManager.onCrouchCanceled += OnCrouch; - inputManager.onZoomPerformed += OnZoom; - inputManager.onZoomCanceled += OnZoomCanceled; localCameraHeight = inputManager.transform.localPosition.y; localGunHolderX = gunHolder.transform.localPosition.x; localGunHolderHeight = gunHolder.transform.localPosition.y; @@ -175,6 +174,16 @@ public void SetPlayerInput(InputManager player) MatchController.Singleton.onRoundEnd += ResetZoom; } + public void ReassignPlayerInput(InputManager input) + { + inputManager = input; + inputManager.onSelect += OnJump; + inputManager.onCrouchPerformed += OnCrouch; + inputManager.onCrouchCanceled += OnCrouch; + inputManager.onZoomPerformed += OnZoom; + inputManager.onZoomCanceled += OnZoomCanceled; + } + public void SetInitialRotation(float radians) { aimAngle = new Vector2(radians, aimAngle.y); @@ -201,8 +210,12 @@ private void OnJump(InputAction.CallbackContext ctx) private void OnZoom(InputAction.CallbackContext ctx) { - LeanTween.value(gameObject, (fov) => playerCamera.fieldOfView = fov, playerCamera.fieldOfView, ZoomFov, 0.2f).setEaseInOutCubic(); - gunHolder.LeanMoveLocalX(0f, 0.2f); + if (LeanTween.isTweening(zoomFovTween)) + LeanTween.cancel(zoomFovTween); + zoomFovTween = LeanTween.value(gameObject, fov => playerCamera.fieldOfView = fov, playerCamera.fieldOfView, ZoomFov, 0.2f).setEaseInOutCubic().id; + if (LeanTween.isTweening(zoomGunTween)) + LeanTween.cancel(zoomGunTween); + zoomGunTween = gunHolder.LeanMoveLocalX(0f, 0.2f).id; } private void OnZoomCanceled(InputAction.CallbackContext ctx) @@ -212,11 +225,15 @@ private void OnZoomCanceled(InputAction.CallbackContext ctx) private void CancelZoom() { - LeanTween.value(gameObject, (fov) => playerCamera.fieldOfView = fov, playerCamera.fieldOfView, startingFov, 0.2f).setEaseInOutCubic(); - gunHolder.LeanMoveLocalX(localGunHolderX, 0.2f); + if (LeanTween.isTweening(zoomFovTween)) + LeanTween.cancel(zoomFovTween); + zoomFovTween = LeanTween.value(gameObject, fov => playerCamera.fieldOfView = fov, playerCamera.fieldOfView, startingFov, 0.2f).setEaseInOutCubic().id; + if (LeanTween.isTweening(zoomGunTween)) + LeanTween.cancel(zoomGunTween); + zoomGunTween = gunHolder.LeanMoveLocalX(localGunHolderX, 0.2f).id; } - private void ResetZoom() + public void ResetZoom() { inputManager.ZoomActive = false; inputManager.onZoomPerformed -= OnZoom; @@ -344,6 +361,8 @@ protected void UpdatePosition(Vector3 input) private void UpdateRotation() { + if (ShouldNotRespondToInputs) + return; var lookSpeedFactor = inputManager.ZoomActive ? inputManager.IsMouseAndKeyboard ? LookSpeedZoom * mouseZoomSpeedFactor : LookSpeedZoom : lookSpeed; @@ -369,7 +388,7 @@ protected void UpdateAnimatorParameters() animator.SetFloat("Right", Vector3.Dot(body.velocity, transform.right) / maxVelocityBeforeExtraDamping); } - void OnDrawGizmos() + private void OnDrawGizmos() { if (!hitbox) return; var extents = new Vector3(1, 1.5f + airThreshold, 1); @@ -427,6 +446,7 @@ private void OnStepDetected(RaycastHit raycastHit, Vector3 rayDirection) } } } + protected virtual void FixedUpdate() { if (FindSteppingGround() && body.velocity.magnitude > 0.08f) @@ -434,7 +454,7 @@ protected virtual void FixedUpdate() FindStep(); } - var positionInput = new Vector3(inputManager.moveInput.x, 0, inputManager.moveInput.y); + var positionInput = ShouldNotRespondToInputs ? Vector3.zero : new Vector3(inputManager.moveInput.x, 0, inputManager.moveInput.y); UpdatePosition(positionInput); // Limit velocity when not grounded if (state == PlayerState.GROUNDED) diff --git a/Assets/Scripts/Gamestate/PlayerManager.cs b/Assets/Scripts/Gamestate/PlayerManager.cs index 556247f4d..065d6d4e4 100644 --- a/Assets/Scripts/Gamestate/PlayerManager.cs +++ b/Assets/Scripts/Gamestate/PlayerManager.cs @@ -168,6 +168,11 @@ void OnDeath(HealthController healthController, float damage, DamageInfo info) playerShadow.gameObject.SetActive(false); } + private void OnPause(InputAction.CallbackContext ctx) + { + hudController?.PauseMenu?.SetPlayerInput(inputManager, this); + } + protected void TurnIntoRagdoll(DamageInfo info) { GetComponent().GetAccumulatedForce(); @@ -198,27 +203,43 @@ protected void TurnIntoRagdoll(DamageInfo info) /// public void SetPlayerInput(InputManager playerInput) { - inputManager = playerInput; - identity = inputManager.GetComponent(); + ListenToPlayerInput(playerInput); + var playerMovement = GetComponent(); playerMovement.SetPlayerInput(inputManager); playerMovement.onMove += UpdateHudOnMove; + + // Set camera on canvas + var canvas = hudController.GetComponent(); + canvas.worldCamera = inputManager.GetComponentInChildren(); + canvas.planeDistance = 0.11f; + + // Set player color + meshBase.GetComponentInChildren().material.color = identity.color; + } + + private void ListenToPlayerInput(InputManager playerInput) + { + inputManager = playerInput; + identity = inputManager.GetComponent(); // Subscribe relevant input events inputManager.onFirePerformed += Fire; inputManager.onFireCanceled += FireEnd; inputManager.onSelect += TryPlaceBid; inputManager.onFirePerformed += TryPlaceBid; inputManager.onInteract += Interact; - // Set camera on canvas - var canvas = hudController.GetComponent(); - canvas.worldCamera = inputManager.GetComponentInChildren(); - canvas.planeDistance = 0.11f; + inputManager.onExit += OnPause; + } - // Set player color - var meshRenderer = meshBase.GetComponentInChildren().material.color = identity.color; + public void ReassignPlayerInput(InputManager playerInput) + { + ListenToPlayerInput(playerInput); + + var playerMovement = GetComponent(); + playerMovement.ReassignPlayerInput(inputManager); } - void OnDestroy() + private void OnDestroy() { if (healthController) { diff --git a/Assets/Scripts/UI/PauseMenu.cs b/Assets/Scripts/UI/PauseMenu.cs new file mode 100644 index 000000000..5a709b98f --- /dev/null +++ b/Assets/Scripts/UI/PauseMenu.cs @@ -0,0 +1,50 @@ +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.InputSystem; +using UnityEngine.UI; + +public class PauseMenu : MonoBehaviour +{ + [SerializeField] private Selectable initiallySelectedButton; + + private PlayerManager player; + + private InputManager input; + + public void SetPlayerInput(InputManager input, PlayerManager player) + { + this.player = player; + this.input = input; + gameObject.SetActive(true); + + var playerMovement = player.GetComponent(); + playerMovement.ShouldNotRespondToInputs = true; + playerMovement.ResetZoom(); + + + EventSystem.current.SetSelectedGameObject(initiallySelectedButton.gameObject); + PlayerInputManagerController.Singleton.ChangeInputMapForPlayer("Menu", input); + input.onExit += Resume; + input.onCancel += Resume; + } + + public void Resume() + { + gameObject.SetActive(false); + PlayerInputManagerController.Singleton.ChangeInputMapForPlayer("FPS", input); + player.ReassignPlayerInput(input); + player.GunController.SetPlayerInput(input); + var playerMovement = player.GetComponent(); + playerMovement.ShouldNotRespondToInputs = false; + } + + private void Resume(InputAction.CallbackContext ctx) + { + Resume(); + } + + public void Leave() + { + MatchController.Singleton.ReturnToMainMenu(); + } +} diff --git a/Assets/Scripts/UI/PauseMenu.cs.meta b/Assets/Scripts/UI/PauseMenu.cs.meta new file mode 100644 index 000000000..5e931998d --- /dev/null +++ b/Assets/Scripts/UI/PauseMenu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c1ad5a90f418f9b49957689cdff9f045 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/PlayerHUDController.cs b/Assets/Scripts/UI/PlayerHUDController.cs index b8301e01a..3e7bd262a 100644 --- a/Assets/Scripts/UI/PlayerHUDController.cs +++ b/Assets/Scripts/UI/PlayerHUDController.cs @@ -70,6 +70,9 @@ public class PlayerHUDController : MonoBehaviour private Material damageBorder; + [SerializeField] + private PauseMenu pauseMenu; + public PauseMenu PauseMenu => pauseMenu; [Header("Effects")]