diff --git a/302/Assets/Scenes/DefaultGameScene.unity b/302/Assets/Scenes/DefaultGameScene.unity index b89ea73..2e9d906 100644 --- a/302/Assets/Scenes/DefaultGameScene.unity +++ b/302/Assets/Scenes/DefaultGameScene.unity @@ -1558,6 +1558,141 @@ Transform: m_CorrespondingSourceObject: {fileID: 7236329420339151181, guid: 2ad42fc20dee64e4ca84470ffa3fb42e, type: 3} m_PrefabInstance: {fileID: 91193543} m_PrefabAsset: {fileID: 0} +--- !u!1 &109632269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 109632270} + - component: {fileID: 109632272} + - component: {fileID: 109632271} + m_Layer: 5 + m_Name: Text (TMP) (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &109632270 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109632269} + 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: 353055344} + m_RootOrder: 2 + 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, y: -100} + m_SizeDelta: {x: 400, y: 125} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &109632271 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109632269} + 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: Hold ESC to exit. + 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: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, 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: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + 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!222 &109632272 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109632269} + m_CullTransparentMesh: 1 --- !u!1001 &111153334 PrefabInstance: m_ObjectHideFlags: 0 @@ -7851,7 +7986,7 @@ Transform: - {fileID: 686324238} - {fileID: 1675446299} m_Father: {fileID: 0} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &346510890 PrefabInstance: @@ -7983,6 +8118,141 @@ Transform: m_CorrespondingSourceObject: {fileID: 1809372938388778512, guid: 474138867ca9be144953fa0ca636b7c9, type: 3} m_PrefabInstance: {fileID: 346510890} m_PrefabAsset: {fileID: 0} +--- !u!1 &351231062 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 351231063} + - component: {fileID: 351231065} + - component: {fileID: 351231064} + m_Layer: 5 + m_Name: Text (TMP) (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &351231063 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 351231062} + 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: 353055344} + m_RootOrder: 1 + 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, y: 25} + m_SizeDelta: {x: 400, y: 125} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &351231064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 351231062} + 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: Paused! + 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: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, 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: 100 + m_fontSizeBase: 100 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + 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!222 &351231065 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 351231062} + m_CullTransparentMesh: 1 --- !u!1001 &353015812 PrefabInstance: m_ObjectHideFlags: 0 @@ -8049,6 +8319,110 @@ Transform: m_CorrespondingSourceObject: {fileID: 7236329420339151181, guid: 2ad42fc20dee64e4ca84470ffa3fb42e, type: 3} m_PrefabInstance: {fileID: 353015812} m_PrefabAsset: {fileID: 0} +--- !u!1 &353055340 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 353055344} + - component: {fileID: 353055343} + - component: {fileID: 353055342} + - component: {fileID: 353055341} + m_Layer: 5 + m_Name: PauseCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &353055341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 353055340} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &353055342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 353055340} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &353055343 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 353055340} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 10 + m_TargetDisplay: 0 +--- !u!224 &353055344 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 353055340} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 775173258} + - {fileID: 351231063} + - {fileID: 109632270} + m_Father: {fileID: 0} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} --- !u!1001 &357145081 PrefabInstance: m_ObjectHideFlags: 0 @@ -8637,7 +9011,7 @@ Transform: - {fileID: 1140758988} - {fileID: 564947111} m_Father: {fileID: 0} - m_RootOrder: 13 + m_RootOrder: 14 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &409596541 PrefabInstance: @@ -9906,7 +10280,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 1157955353405416223, guid: 7c34e61c4c1b39040bc8b4a56d34f904, type: 3} propertyPath: m_RootOrder - value: 17 + value: 18 objectReference: {fileID: 0} - target: {fileID: 1157955353405416223, guid: 7c34e61c4c1b39040bc8b4a56d34f904, type: 3} propertyPath: m_LocalScale.x @@ -10148,7 +10522,7 @@ Transform: - {fileID: 1996899819} - {fileID: 728370163} m_Father: {fileID: 0} - m_RootOrder: 16 + m_RootOrder: 17 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &470489866 stripped GameObject: @@ -18065,6 +18439,82 @@ Transform: m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e8452d6febdb74d3baa023ccec6ad5d2, type: 3} m_PrefabInstance: {fileID: 770351070} m_PrefabAsset: {fileID: 0} +--- !u!1 &775173257 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 775173258} + - component: {fileID: 775173260} + - component: {fileID: 775173259} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &775173258 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775173257} + 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: 353055344} + m_RootOrder: 0 + 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, y: 0} + m_SizeDelta: {x: 500, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &775173259 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775173257} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, 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_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &775173260 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 775173257} + m_CullTransparentMesh: 1 --- !u!1 &776868653 GameObject: m_ObjectHideFlags: 0 @@ -22258,7 +22708,7 @@ RectTransform: - {fileID: 924724806} - {fileID: 210424746} m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -23673,50 +24123,6 @@ Transform: m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e8452d6febdb74d3baa023ccec6ad5d2, type: 3} m_PrefabInstance: {fileID: 1081794280} m_PrefabAsset: {fileID: 0} ---- !u!1 &1084129217 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1084129219} - - component: {fileID: 1084129218} - m_Layer: 0 - m_Name: ScreenFader - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1084129218 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1084129217} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2267cbb47d31243949c189cf5380789d, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &1084129219 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1084129217} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 7.2420564, y: 1.364642, z: 7.3993287} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1087920892 GameObject: m_ObjectHideFlags: 0 @@ -26117,7 +26523,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1169446209 GameObject: @@ -26183,7 +26589,7 @@ Transform: m_Children: - {fileID: 592683971} m_Father: {fileID: 0} - m_RootOrder: 11 + m_RootOrder: 12 m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} --- !u!114 &1169446214 MonoBehaviour: @@ -33130,7 +33536,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 8773584364483337333, guid: 4dbfb06eecc5e57499f6ea0d7a944a7d, type: 3} propertyPath: m_RootOrder - value: 12 + value: 13 objectReference: {fileID: 0} - target: {fileID: 8773584364483337333, guid: 4dbfb06eecc5e57499f6ea0d7a944a7d, type: 3} propertyPath: m_LocalPosition.x @@ -34981,7 +35387,7 @@ Transform: - {fileID: 776868654} - {fileID: 746649503} m_Father: {fileID: 0} - m_RootOrder: 10 + m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1632629191 PrefabInstance: @@ -35305,7 +35711,7 @@ Transform: - {fileID: 951219931} - {fileID: 1983020638} m_Father: {fileID: 0} - m_RootOrder: 14 + m_RootOrder: 15 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1646071858 GameObject: @@ -35352,6 +35758,52 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1650518897 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1650518899} + - component: {fileID: 1650518898} + m_Layer: 0 + m_Name: PauseManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1650518898 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1650518897} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ca352e3a141129743824a83b5d7a231f, type: 3} + m_Name: + m_EditorClassIdentifier: + nameCanvas: PauseCanvas + timeExit: 1.5 +--- !u!4 &1650518899 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1650518897} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1651976774 PrefabInstance: m_ObjectHideFlags: 0 @@ -40909,7 +41361,7 @@ Transform: - {fileID: 1312744305} - {fileID: 248584500} m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1874864534 PrefabInstance: @@ -43255,7 +43707,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1967068472 PrefabInstance: @@ -44138,7 +44590,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &2000714622 PrefabInstance: @@ -47691,7 +48143,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6835821722049786628, guid: e98bfaaf0938845d098edce033f7e7a2, type: 3} propertyPath: m_RootOrder - value: 15 + value: 16 objectReference: {fileID: 0} - target: {fileID: 6835821722049786628, guid: e98bfaaf0938845d098edce033f7e7a2, type: 3} propertyPath: m_LocalPosition.x @@ -48008,7 +48460,7 @@ Transform: m_Children: - {fileID: 5060942477613140018} m_Father: {fileID: 0} - m_RootOrder: 18 + m_RootOrder: 19 m_LocalEulerAnglesHint: {x: -89.98, y: 180, z: 0} --- !u!4 &4951250094039373438 Transform: diff --git a/302/Assets/Scripts/FireExtinguisher.cs b/302/Assets/Scripts/FireExtinguisher.cs index c8ec3ce..1fb1ae6 100644 --- a/302/Assets/Scripts/FireExtinguisher.cs +++ b/302/Assets/Scripts/FireExtinguisher.cs @@ -44,7 +44,7 @@ private void Update() CheckFireCollision(); - if (Input.GetMouseButtonDown(1)) + if (Input.GetMouseButtonDown(1) && Time.timeScale != 0.0f) { PutDown(); } diff --git a/302/Assets/Scripts/GameManager.cs b/302/Assets/Scripts/GameManager.cs index 0382ccb..83e46e6 100644 --- a/302/Assets/Scripts/GameManager.cs +++ b/302/Assets/Scripts/GameManager.cs @@ -176,6 +176,9 @@ private IEnumerator StartStage() } _anomalyController = AnomalyManager.Instance.GetAnomalyController(); + + yield return null; + _anomalyController.StartAnomaly(); } diff --git a/302/Assets/Scripts/InteractionManager.cs b/302/Assets/Scripts/InteractionManager.cs index afded85..57ff038 100644 --- a/302/Assets/Scripts/InteractionManager.cs +++ b/302/Assets/Scripts/InteractionManager.cs @@ -20,6 +20,9 @@ public class InteractionManager : AbstractStageObserver // 클래스 이름 public override string Name { get; } = "InteractionManager"; + // 클래스 인스턴스 + public static InteractionManager Instance { get; private set; } + /************ * messages * ************/ @@ -43,7 +46,7 @@ void OnDrawGizmos() void Update() { - if (cursor != null) { + if (cursor != null && Time.timeScale != 0.0f) { if (PlayerManager.Instance.State == PlayerManager.PlayerState.Normal) { Ray ray = playerCamera.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0.0f)); RaycastHit hit; @@ -70,6 +73,24 @@ void Update() * implementation: AbstractBehaviour * *************************************/ + // `Awake` 메시지 용 메서드 + protected override bool Awake_() + { + bool res = false; + + if (Instance == null) { + Log($"`Instance` has not been set => set `Instance` as `{Name}`"); + Instance = this; + DontDestroyOnLoad(gameObject); + res = base.Awake_(); + } else { + Log($"`Instance` has already been set => destroy `{gameObject.name}`"); + Destroy(gameObject); + } + + return res; + } + // 필드를 초기화하는 메서드 protected override bool InitFields() { diff --git a/302/Assets/Scripts/LaptopFaceController.cs b/302/Assets/Scripts/LaptopFaceController.cs index f6a4371..df27681 100644 --- a/302/Assets/Scripts/LaptopFaceController.cs +++ b/302/Assets/Scripts/LaptopFaceController.cs @@ -38,9 +38,6 @@ public class LaptopFaceController : LaptopScreenController * fields * **********/ - // 오브젝트 - public GameObject player; - // 내부 수치 private int TANGENT_MAX = 25; private float TANGENT_CONST = 12.5f; @@ -134,6 +131,7 @@ public void StartGazing() // 쳐다보기 화면을 갱신하는 메서드 private void UpdateGazing() { + GameObject player = GameObject.Find("Main Camera"); Vector3 forward = Vector3.ProjectOnPlane(transform.forward, Vector3.up).normalized; Vector3 direction = Vector3.ProjectOnPlane(player.transform.position - transform.position, Vector3.up); float dotProd = Vector3.Dot(direction, forward); diff --git a/302/Assets/Scripts/PauseManager.cs b/302/Assets/Scripts/PauseManager.cs new file mode 100644 index 0000000..38a6aba --- /dev/null +++ b/302/Assets/Scripts/PauseManager.cs @@ -0,0 +1,153 @@ +using UnityEngine; + +public class PauseManager : AbstractStageObserver +{ + /********** + * fields * + **********/ + + // 캔버스 이름 + public string nameCanvas; + + // 종료를 위한 입력 시간 + public double timeExit; + + // 캔버스 + private Canvas _canvas; + + // 시간 + private double _timeKeyDown; + + /************** + * properties * + **************/ + + // 클래스 이름 + public override string Name { get; } = "PauseManager"; + + // 클래스 인스턴스 + public static PauseManager Instance { get; private set; } + + /************ + * messages * + ************/ + + void Update() + { + double time = Time.unscaledTimeAsDouble; + + if (Input.GetKeyDown(KeyCode.Escape)) { + _timeKeyDown = time; + } else if (Input.GetKey(KeyCode.Escape) && time - _timeKeyDown >= timeExit) { + ExitGame(); + } else if (Input.GetKeyUp(KeyCode.Escape) && time - _timeKeyDown < timeExit) { + if (GameManager.Instance.State == GameManager.GameState.Playing) { + PauseGame(); + } else if (GameManager.Instance.State == GameManager.GameState.Paused) { + ResumeGame(); + } + } + } + + /************************************* + * implementation: AbstractBehaviour * + *************************************/ + + // `Awake` 메시지 용 메서드 + protected override bool Awake_() + { + bool res = false; + + if (Instance == null) { + Log($"`Instance` has not been set => set `Instance` as `{Name}`"); + Instance = this; + DontDestroyOnLoad(gameObject); + res = base.Awake_(); + } else { + Log($"`Instance` has already been set => destroy `{gameObject.name}`"); + Destroy(gameObject); + } + + return res; + } + + // `Start` 메시지 용 메서드 + protected override bool Start_() + { + bool res = base.Start_(); + + // TODO: `Start` 메시지에서 해야할 것 넣기. 없으면 메서드를 아예 지워도 됨. + // 함수가 제대로 작동했으면 `true`를, 아니면 `false`를 반환. + + return res; + } + + // 필드를 초기화하는 메서드 + protected override bool InitFields() + { + bool res = base.InitFields(); + + // TODO: 필드 초기화할 것 넣기. 없으면 메서드를 아예 지워도 됨. + // (사실 필드 말고 초기화할 것도 넣어도 됨....) + // 함수가 제대로 작동했으면 `true`를, 아니면 `false`를 반환. + + return res; + } + + /***************************************** + * implementation: AbstractStageObserver * + *****************************************/ + + // 단계 변경 시 불리는 메서드 + public override bool UpdateStage() + { + GameObject obj = GameObject.Find(nameCanvas); + bool res = base.UpdateStage(); + + if (obj != null) { + Log($"Find `{nameCanvas}` success"); + + _canvas = obj.GetComponent(); + if (_canvas != null) { + Log("Find `Canvas` success"); + _canvas.gameObject.SetActive(false); + } else { + Log("Find `Canvas` failed", mode: 1); + res = false; + } + } else { + Log($"Find `{nameCanvas}` failed", mode: 1); + res = false; + } + + return res; + } + + /*************** + * new methods * + ***************/ + + private void PauseGame() + { + Log("Pause the game"); + GameManager.Instance.PauseGame(); + _canvas.gameObject.SetActive(true); + } + + private void ResumeGame() + { + Log("Resume the game"); + GameManager.Instance.ResumeGame(); + _canvas.gameObject.SetActive(false); + } + + private void ExitGame() + { + Log("Exit the game"); +#if UNITY_EDITOR + UnityEditor.EditorApplication.isPlaying = false; +#else + Application.Quit(); +#endif + } +} diff --git a/302/Assets/Scripts/PauseManager.cs.meta b/302/Assets/Scripts/PauseManager.cs.meta new file mode 100644 index 0000000..992d3c3 --- /dev/null +++ b/302/Assets/Scripts/PauseManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca352e3a141129743824a83b5d7a231f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/302/Assets/Scripts/PlayerManager.cs b/302/Assets/Scripts/PlayerManager.cs index d5e0853..eb3e6e2 100644 --- a/302/Assets/Scripts/PlayerManager.cs +++ b/302/Assets/Scripts/PlayerManager.cs @@ -89,21 +89,14 @@ public enum PlayerState void FixedUpdate() { - if (State == PlayerState.Normal) { + if (State == PlayerState.Normal && Time.timeScale != 0.0f) { HandleMovement(); } } - void Start() - { - SetupComponents(); - SetupPhysics(); - Cursor.lockState = CursorLockMode.Locked; - } - void Update() { - if (State == PlayerState.Normal) { + if (State == PlayerState.Normal && Time.timeScale != 0.0f) { HandleInput(); HandleCamera(); } @@ -134,15 +127,22 @@ protected override bool Awake_() // 필드를 초기화하는 메서드 protected override bool InitFields() { + GameObject obj = GameObject.Find("ScreenFader"); bool res = base.InitFields(); - screenFader = FindObjectOfType(); - if (screenFader == null) { - GameObject obj = new GameObject("ScreenFader"); - + if (obj != null) { + Log("Find `ScreenFader` success => Get `ScreenFader`"); + screenFader = obj.GetComponent(); + } else { + Log("Find `ScreenFader` failed => New `ScreenFader`"); + obj = new GameObject("ScreenFader"); screenFader = obj.AddComponent(); } + SetupComponents(); + SetupPhysics(); + Cursor.lockState = CursorLockMode.Locked; + return res; } diff --git a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly15_spider.cs b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly15_spider.cs index f612da5..eeb7f63 100644 --- a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly15_spider.cs +++ b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly15_spider.cs @@ -10,9 +10,13 @@ public class Anomaly15_spider : AbstractAnomalyInteractable private Transform cameraTransform; private AudioSource audioSource; - private void Start() + protected override bool Start_() { + bool res = base.Start_(); + StartAnomaly(); + + return res; } public override bool StartAnomaly() diff --git a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly16_marker.cs b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly16_marker.cs index b04d613..525ace7 100644 --- a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly16_marker.cs +++ b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly16_marker.cs @@ -62,9 +62,13 @@ public override bool StartAnomaly() return true; } - private void Start() + protected override bool Start_() { + bool res = base.Start_(); + StartAnomaly(); + + return res; } public override bool ResetAnomaly() diff --git a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly17_mic.cs b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly17_mic.cs index 3c3d6b5..24b6985 100644 --- a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly17_mic.cs +++ b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly17_mic.cs @@ -62,9 +62,13 @@ public override bool StartAnomaly() return true; } - private void Start() + protected override bool Start_() { + bool res = base.Start_(); + StartAnomaly(); + + return res; } public override bool ResetAnomaly() diff --git a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly29_banana.cs b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly29_banana.cs index 75d0ae0..752b678 100644 --- a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly29_banana.cs +++ b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly29_banana.cs @@ -7,7 +7,7 @@ public class Anomaly29_banana : MonoBehaviour void Start() { - anomalyManager = FindObjectOfType(); + anomalyManager = FindObjectOfType(); } private void OnCollisionEnter(Collision collision) diff --git a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly30_window.cs b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly30_window.cs index 2761889..e8d7fb4 100644 --- a/302/Assets/Scripts/SpecificAnomalyManager/Anomaly30_window.cs +++ b/302/Assets/Scripts/SpecificAnomalyManager/Anomaly30_window.cs @@ -23,9 +23,13 @@ public class Anomaly30_window : AbstractAnomalyInteractable private AudioSource audioSource; private static GameObject coroutineRunner; - private void Start() + protected override bool Start_() { + bool res = base.Start_(); + StartAnomaly(); + + return res; } public override bool StartAnomaly()