Added wind sound, better death handling, more graunlar states

This commit is contained in:
Jeremy Smitherman 2026-04-25 12:42:40 -05:00
parent 0a81aa6220
commit b69a2c964c
27 changed files with 477 additions and 335 deletions

View File

@ -6,14 +6,22 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="60468364-7d9c-427f-83f9-f6cd83ef8783" name="Changes" comment=""> <list default="true" id="60468364-7d9c-427f-83f9-f6cd83ef8783" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.idea/.idea.SpringJam2026/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.SpringJam2026/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/.idea.SpringJam2026/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.SpringJam2026/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Audio/SFX/spring.wav" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Audio/SFX/spring.wav" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/DefaultVolumeProfile.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/DefaultVolumeProfile.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/InputSystem_Actions.inputactions" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/InputSystem_Actions.inputactions" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Prefabs/Catepillar/Player.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Prefabs/Catepillar/Player.prefab" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/Prefabs/Catepillar/Player.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Prefabs/Catepillar/Player.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Prefabs/UI/DeathScreen.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Prefabs/UI/DeathScreen.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Bootstrap.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/Bootstrap.unity" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/Scenes/Bootstrap.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/Bootstrap.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Game.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/Game.unity" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/Scenes/Game.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/Game.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Management/BGM.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Management/BGM.cs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/Scripts/Management/BGM.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Management/BGM.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Player/Cam.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Player/Cam.cs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/Scripts/Management/Bootstrap.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Management/Bootstrap.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Management/Services.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Management/Services.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Player/Movement.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Player/Movement.cs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/Scripts/Player/Movement.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Player/Movement.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ProjectSettings/TagManager.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/TagManager.asset" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Assets/Scripts/State/Game/MainMenuState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/State/Game/MainMenuState.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/State/Game/MainStateMachine.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/State/Game/MainStateMachine.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/DeathScreen.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/DeathScreen.cs.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/UI Toolkit/PanelSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UI Toolkit/PanelSettings.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ProjectSettings/EditorBuildSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/EditorBuildSettings.asset" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -28,11 +36,13 @@
</component> </component>
<component name="HighlightingSettingsPerFile"> <component name="HighlightingSettingsPerFile">
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/500f267b66d74c678b3466bfed6b3d28212800/32/2bc2e6e7/Object.cs" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/500f267b66d74c678b3466bfed6b3d28212800/32/2bc2e6e7/Object.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Management/InputRouter.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Player/Movement.cs" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Scripts/Player/Movement.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/State/Game/GameRunningState.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/State/Game/MainGameState.cs" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Scripts/State/Game/MainGameState.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/State/Game/MainMenuState.cs" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Scripts/State/Game/MainMenuState.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/State/Game/MainStateMachine.cs" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Scripts/State/Game/MainStateMachine.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Assets/Scripts/UI/DeathScreen.cs" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/Assets/Scripts/State/Game/StartGameState.cs" root0="FORCE_HIGHLIGHTING" />
</component> </component>
<component name="ProjectColorInfo">{ <component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 6 &quot;associatedIndex&quot;: 6
@ -101,13 +111,15 @@
<option name="useMixedMode" value="false" /> <option name="useMixedMode" value="false" />
<method v="2" /> <method v="2" />
</configuration> </configuration>
<configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost"> <configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" ignored-value-for-modified-check="219780">
<option name="allowRunningInParallel" value="false" /> <option name="allowRunningInParallel" value="false" />
<option name="listenPortForConnections" value="false" /> <option name="listenPortForConnections" value="false" />
<option name="pid" /> <option name="pid" value="219780" />
<option name="projectPathOnTarget" /> <option name="projectPathOnTarget" />
<option name="runtimes"> <option name="runtimes">
<list /> <list>
<MonoRuntime />
</list>
</option> </option>
<option name="selectedOptions"> <option name="selectedOptions">
<list /> <list />
@ -128,7 +140,7 @@
<updated>1777050991106</updated> <updated>1777050991106</updated>
<workItem from="1777050993247" duration="19210000" /> <workItem from="1777050993247" duration="19210000" />
<workItem from="1777098508515" duration="3575000" /> <workItem from="1777098508515" duration="3575000" />
<workItem from="1777126978640" duration="3673000" /> <workItem from="1777126978640" duration="11783000" />
</task> </task>
<servers /> <servers />
</component> </component>

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 1
conversionMode: 0 conversionMode: 0
preloadAudioData: 0 preloadAudioData: 1
platformSettingOverrides: {} platformSettingOverrides: {}
forceToMono: 0 forceToMono: 0
normalize: 1 normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 1
conversionMode: 0 conversionMode: 0
preloadAudioData: 0 preloadAudioData: 1
platformSettingOverrides: {} platformSettingOverrides: {}
forceToMono: 0 forceToMono: 0
normalize: 1 normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 1
conversionMode: 0 conversionMode: 0
preloadAudioData: 0 preloadAudioData: 1
platformSettingOverrides: {} platformSettingOverrides: {}
forceToMono: 0 forceToMono: 0
normalize: 1 normalize: 1

View File

@ -11,7 +11,7 @@ AudioImporter:
compressionFormat: 1 compressionFormat: 1
quality: 1 quality: 1
conversionMode: 0 conversionMode: 0
preloadAudioData: 0 preloadAudioData: 1
platformSettingOverrides: {} platformSettingOverrides: {}
forceToMono: 0 forceToMono: 0
normalize: 1 normalize: 1

View File

@ -322,6 +322,9 @@ MonoBehaviour:
highQualityFiltering: highQualityFiltering:
m_OverrideState: 1 m_OverrideState: 1
m_Value: 0 m_Value: 0
filter:
m_OverrideState: 1
m_Value: 0
downscale: downscale:
m_OverrideState: 1 m_OverrideState: 1
m_Value: 0 m_Value: 0

View File

@ -14,6 +14,15 @@
"processors": "", "processors": "",
"interactions": "", "interactions": "",
"initialStateCheck": false "initialStateCheck": false
},
{
"name": "Spawn",
"type": "Button",
"id": "872c318c-192f-4bba-a6d7-ba6e0c7ae7c6",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
} }
], ],
"bindings": [ "bindings": [
@ -104,6 +113,17 @@
"action": "Interact", "action": "Interact",
"isComposite": false, "isComposite": false,
"isPartOfComposite": false "isPartOfComposite": false
},
{
"name": "",
"id": "423b0c40-8c5b-40c6-91d1-5b809e0cfa85",
"path": "<Keyboard>/r",
"interactions": "",
"processors": "",
"groups": ";Keyboard&Mouse;Gamepad;Touch;Joystick;XR",
"action": "Spawn",
"isComposite": false,
"isPartOfComposite": false
} }
] ]
}, },

View File

@ -142,7 +142,6 @@ GameObject:
- component: {fileID: 849756540516150458} - component: {fileID: 849756540516150458}
- component: {fileID: 4169369283586250626} - component: {fileID: 4169369283586250626}
- component: {fileID: 3534034070345576868} - component: {fileID: 3534034070345576868}
- component: {fileID: 4576448781989217082}
m_Layer: 0 m_Layer: 0
m_Name: Player m_Name: Player
m_TagString: Player m_TagString: Player
@ -271,7 +270,6 @@ MonoBehaviour:
airJumpForce: 10 airJumpForce: 10
spriteRenderer: {fileID: 342790821639359709} spriteRenderer: {fileID: 342790821639359709}
turnDelay: 0.08 turnDelay: 0.08
interactReference: {fileID: 1781555164194001046, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
impactPauseTime: 0.2 impactPauseTime: 0.2
bouncePower: 5 bouncePower: 5
animator: {fileID: 2598533458249844269} animator: {fileID: 2598533458249844269}
@ -283,36 +281,6 @@ MonoBehaviour:
bumpSound: {fileID: 8300000, guid: 7c28608e819f6574193756354a7974fe, type: 3} bumpSound: {fileID: 8300000, guid: 7c28608e819f6574193756354a7974fe, type: 3}
windSound: {fileID: 2413457592393949793} windSound: {fileID: 2413457592393949793}
maxSpeedWindSound: 15 maxSpeedWindSound: 15
--- !u!114 &4576448781989217082
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7621021177568661959}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.PlayerInput
m_Actions: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
m_NotificationBehavior: 3
m_UIInputModule: {fileID: 0}
m_DeviceLostEvent:
m_PersistentCalls:
m_Calls: []
m_DeviceRegainedEvent:
m_PersistentCalls:
m_Calls: []
m_ControlsChangedEvent:
m_PersistentCalls:
m_Calls: []
m_ActionEvents: []
m_NeverAutoSwitchControlSchemes: 0
m_DefaultControlScheme:
m_DefaultActionMap: Player
m_SplitScreenIndex: -1
m_Camera: {fileID: 0}
--- !u!1 &8270890549788907285 --- !u!1 &8270890549788907285
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -10,8 +10,6 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 315795448353938977} - component: {fileID: 315795448353938977}
- component: {fileID: 7156060875641048167} - component: {fileID: 7156060875641048167}
- component: {fileID: 6275699004517191814}
- component: {fileID: -131508972722898766}
m_Layer: 0 m_Layer: 0
m_Name: DeathScreen m_Name: DeathScreen
m_TagString: Untagged m_TagString: Untagged
@ -57,113 +55,3 @@ MonoBehaviour:
m_PivotReferenceSize: 0 m_PivotReferenceSize: 0
m_Pivot: 0 m_Pivot: 0
m_WorldSpaceCollider: {fileID: 0} m_WorldSpaceCollider: {fileID: 0}
--- !u!82 &6275699004517191814
AudioSource:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6072795237519443946}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 0}
m_Resource: {fileID: 8300000, guid: 9abfcb38929cf1241a742680b5fcf017, type: 3}
m_PlayOnAwake: 1
m_Volume: 1
m_Pitch: 0.8
Loop: 0
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 0
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!114 &-131508972722898766
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6072795237519443946}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2a3ba437acb54874092ae3d89c46b133, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::UI.DeathScreen
playerPrefab: {fileID: 7621021177568661959, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}

View File

@ -119,6 +119,218 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &564331327
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 564331331}
- component: {fileID: 564331330}
- component: {fileID: 564331329}
- component: {fileID: 564331328}
m_Layer: 0
m_Name: Camera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!114 &564331328
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 564331327}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2
--- !u!81 &564331329
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 564331327}
m_Enabled: 1
--- !u!20 &564331330
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 564331327}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &564331331
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 564331327}
serializedVersion: 2
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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1131356124
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1131356126}
- component: {fileID: 1131356125}
- component: {fileID: 1131356127}
m_Layer: 0
m_Name: InputManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1131356125
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1131356124}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.PlayerInput
m_Actions: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
m_NotificationBehavior: 3
m_UIInputModule: {fileID: 0}
m_DeviceLostEvent:
m_PersistentCalls:
m_Calls: []
m_DeviceRegainedEvent:
m_PersistentCalls:
m_Calls: []
m_ControlsChangedEvent:
m_PersistentCalls:
m_Calls: []
m_ActionEvents: []
m_NeverAutoSwitchControlSchemes: 0
m_DefaultControlScheme: Keyboard&Mouse
m_DefaultActionMap: Player
m_SplitScreenIndex: -1
m_Camera: {fileID: 0}
--- !u!4 &1131356126
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1131356124}
serializedVersion: 2
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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1131356127
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1131356124}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cae18a7c1c4314e4fb239ece5cef4996, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Management.InputRouter
--- !u!1 &1327356647 --- !u!1 &1327356647
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -278,7 +490,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!114 &1469922750 --- !u!114 &1469922750
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -292,6 +504,10 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: Assembly-CSharp::State.Game.MainStateMachine m_EditorClassIdentifier: Assembly-CSharp::State.Game.MainStateMachine
mainMenuPrefab: {fileID: 1522947426740712753, guid: 0453e357da6c33c468bb3d3726552b8e, type: 3} mainMenuPrefab: {fileID: 1522947426740712753, guid: 0453e357da6c33c468bb3d3726552b8e, type: 3}
playerPrefab: {fileID: 7621021177568661959, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
fruitsPrefab: {fileID: 3648719755775049102, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
deathScreenPrefab: {fileID: 6072795237519443946, guid: 439eaa80d7eac8d4db6eace5ddaf3489, type: 3}
deathSound: {fileID: 8300000, guid: 9abfcb38929cf1241a742680b5fcf017, type: 3}
--- !u!4 &1469922751 --- !u!4 &1469922751
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -339,6 +555,7 @@ MonoBehaviour:
m_EditorClassIdentifier: Assembly-CSharp::Management.Services m_EditorClassIdentifier: Assembly-CSharp::Management.Services
bgm: {fileID: 1755353617} bgm: {fileID: 1755353617}
sfx: {fileID: 1327356649} sfx: {fileID: 1327356649}
inputRouter: {fileID: 1131356127}
--- !u!4 &1671688485 --- !u!4 &1671688485
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -361,12 +578,12 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1671688483} m_GameObject: {fileID: 1671688483}
m_Enabled: 0 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4b256c4001284134990a2af43c375455, type: 3} m_Script: {fileID: 11500000, guid: 4b256c4001284134990a2af43c375455, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Bootstrap m_EditorClassIdentifier: Assembly-CSharp::Bootstrap
startType: 1 startType: 3
gameStateMachine: {fileID: 1469922750} gameStateMachine: {fileID: 1469922750}
--- !u!1 &1755353616 --- !u!1 &1755353616
GameObject: GameObject:
@ -715,3 +932,5 @@ SceneRoots:
- {fileID: 1755353619} - {fileID: 1755353619}
- {fileID: 1327356648} - {fileID: 1327356648}
- {fileID: 1469922751} - {fileID: 1469922751}
- {fileID: 1131356126}
- {fileID: 564331331}

View File

@ -356,9 +356,9 @@ Camera:
m_NormalizedViewPortRect: m_NormalizedViewPortRect:
serializedVersion: 2 serializedVersion: 2
x: 0 x: 0
y: 0.0009259259 y: 0
width: 1 width: 1
height: 0.99814814 height: 1
near clip plane: 0.3 near clip plane: 0.3
far clip plane: 1000 far clip plane: 1000
field of view: 60 field of view: 60
@ -4523,124 +4523,6 @@ BoxCollider2D:
m_AutoTiling: 0 m_AutoTiling: 0
m_Size: {x: 2, y: 0.5} m_Size: {x: 2, y: 0.5}
m_EdgeRadius: 0 m_EdgeRadius: 0
--- !u!1001 &2062647807
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4576448781989217082, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_Camera
value:
objectReference: {fileID: 1102711993}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalPosition.x
value: -6.31
objectReference: {fileID: 0}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalPosition.y
value: -0.85
objectReference: {fileID: 0}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6196444245332325679, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7621021177568661959, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
propertyPath: m_Name
value: Player
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: fbc05a08dfccd6a4cb1bcc1cf1910065, type: 3}
--- !u!1001 &4089110117659577756
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 3648719755775049102, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_Name
value: Fruits
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8964614072675907068, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 067c711b87e00ef4d9158c92377f44a6, type: 3}
--- !u!1660057539 &9223372036854775807 --- !u!1660057539 &9223372036854775807
SceneRoots: SceneRoots:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4649,7 +4531,5 @@ SceneRoots:
- {fileID: 135794690} - {fileID: 135794690}
- {fileID: 118420888} - {fileID: 118420888}
- {fileID: 1755712273} - {fileID: 1755712273}
- {fileID: 2062647807}
- {fileID: 1454353602} - {fileID: 1454353602}
- {fileID: 4089110117659577756}
- {fileID: 219800105} - {fileID: 219800105}

View File

@ -36,6 +36,7 @@ namespace Management
TrackType.Muted => audioSources[0], TrackType.Muted => audioSources[0],
TrackType.Core => audioSources[1], TrackType.Core => audioSources[1],
TrackType.Victory => audioSources[2], TrackType.Victory => audioSources[2],
_ => audioSources[0],
}; };
var targetAudioSource = type switch var targetAudioSource = type switch
@ -43,6 +44,7 @@ namespace Management
TrackType.Muted => audioSources[0], TrackType.Muted => audioSources[0],
TrackType.Core => audioSources[1], TrackType.Core => audioSources[1],
TrackType.Victory => audioSources[2], TrackType.Victory => audioSources[2],
_ => audioSources[0],
}; };
StartCoroutine(FadeInRoutine(currentAudioSource, targetAudioSource, t)); StartCoroutine(FadeInRoutine(currentAudioSource, targetAudioSource, t));

View File

@ -23,6 +23,7 @@ namespace Management
{ {
Splash, Splash,
MainMenu, MainMenu,
StartGame,
Game Game
} }
@ -64,8 +65,12 @@ namespace Management
switch (startType) switch (startType)
{ {
case StartType.Splash: case StartType.Splash:
case StartType.StartGame:
gameStateMachine.ChangeState(new StartGameState());
break;
case StartType.Game: case StartType.Game:
throw new NotImplementedException(); gameStateMachine.ChangeState(new GameRunningState());
break;
case StartType.MainMenu: case StartType.MainMenu:
default: default:
gameStateMachine.ChangeState(new MainMenuState()); gameStateMachine.ChangeState(new MainMenuState());

View File

@ -0,0 +1,49 @@
using System;
using UnityEngine;
using UnityEngine.InputSystem;
namespace Management
{
public class InputRouter : MonoBehaviour
{
public event Action<bool> OnInteract;
private static InputRouter _instance;
private PlayerInput _playerInput;
private InputAction _interactAction;
private void Awake()
{
if (_instance != null && _instance != this)
{
Destroy(gameObject);
return;
}
_playerInput = GetComponent<PlayerInput>();
_playerInput.actions.Disable();
EnableGameActions();
}
public void EnableGameActions()
{
_playerInput.SwitchCurrentActionMap("Player");
_interactAction = _playerInput.actions.FindAction("Interact", true);
_interactAction.Enable();
_interactAction.performed += HandleInteraction;
_interactAction.canceled += HandleInteraction;
}
public void EnableUIActions()
{
_playerInput.SwitchCurrentActionMap("UI");
}
private void HandleInteraction(InputAction.CallbackContext context)
{
OnInteract?.Invoke(context.performed);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: cae18a7c1c4314e4fb239ece5cef4996

View File

@ -16,9 +16,11 @@ namespace Management
// SFX service to serve as single spot SFX plays from. // SFX service to serve as single spot SFX plays from.
public SFX SFX => sfx; public SFX SFX => sfx;
public InputRouter InputRouter => inputRouter;
[SerializeField] private BGM bgm; [SerializeField] private BGM bgm;
[SerializeField] private SFX sfx; [SerializeField] private SFX sfx;
[SerializeField] private InputRouter inputRouter;
private void Awake() private void Awake()
{ {

View File

@ -10,6 +10,8 @@ namespace Player
[RequireComponent(typeof(Rigidbody2D))] [RequireComponent(typeof(Rigidbody2D))]
public class Movement : MonoBehaviour public class Movement : MonoBehaviour
{ {
public event Action OnDeath;
private static readonly int Spring = Animator.StringToHash("spring"); private static readonly int Spring = Animator.StringToHash("spring");
private static readonly int Grounded = Animator.StringToHash("grounded"); private static readonly int Grounded = Animator.StringToHash("grounded");
private static readonly int Speed = Animator.StringToHash("speed"); private static readonly int Speed = Animator.StringToHash("speed");
@ -20,7 +22,6 @@ namespace Player
[SerializeField] private float airJumpForce; [SerializeField] private float airJumpForce;
[SerializeField] private SpriteRenderer spriteRenderer; [SerializeField] private SpriteRenderer spriteRenderer;
[SerializeField] private float turnDelay; [SerializeField] private float turnDelay;
[SerializeField] private InputActionReference interactReference;
[SerializeField] private float impactPauseTime; [SerializeField] private float impactPauseTime;
[SerializeField] private float bouncePower; [SerializeField] private float bouncePower;
[SerializeField] private Animator animator; [SerializeField] private Animator animator;
@ -52,25 +53,27 @@ namespace Player
private Vector2 _airJumpDir; private Vector2 _airJumpDir;
private bool _autoDrive = true; private bool _autoDrive = true;
private bool _deathArmed; private bool _deathArmed;
private void Awake() private void Awake()
{ {
_rb = GetComponent<Rigidbody2D>(); _rb = GetComponent<Rigidbody2D>();
InputSystem.actions.FindActionMap("UI").Disable();
InputSystem.actions.FindActionMap("Player").Enable();
interactReference.action.performed += HandleInteraction;
interactReference.action.canceled += HandleInteraction;
} }
private void Start() private void Start()
{ {
Cursor.lockState = CursorLockMode.None; Cursor.lockState = CursorLockMode.None;
Cursor.visible = true; Cursor.visible = true;
Services.Instance.InputRouter.OnInteract += HandleInteraction;
} }
private void HandleInteraction(InputAction.CallbackContext obj) private void OnDestroy()
{ {
_interact = obj.ReadValueAsButton(); Services.Instance.InputRouter.OnInteract -= HandleInteraction;
}
private void HandleInteraction(bool pressed)
{
_interact = pressed;
_jumpPressedThisFrame = _interact; _jumpPressedThisFrame = _interact;
} }
@ -112,16 +115,10 @@ namespace Player
_airJump = true; _airJump = true;
} }
Debug.Log(_rb.linearVelocityY); windSound.volume = Mathf.Lerp(0, 1, Mathf.Abs(_rb.linearVelocityY / maxSpeedWindSound));
windSound.volume = Mathf.Lerp(0, 1, _rb.linearVelocityY / maxSpeedWindSound);
_jumpPressedThisFrame = false; _jumpPressedThisFrame = false;
} }
private void OnDestroy()
{
windSound.volume = 0f;
}
private void FixedUpdate() private void FixedUpdate()
{ {
if (_jump) if (_jump)
@ -147,7 +144,7 @@ namespace Player
Services.Instance.SFX.PlayOneShot(springSound); Services.Instance.SFX.PlayOneShot(springSound);
Services.Instance.BGM.FadeIn(BGM.TrackType.Core); Services.Instance.BGM.FadeIn(BGM.TrackType.Core);
_fireSpring = false; _fireSpring = false;
_rb.linearVelocityX = 0; _rb.linearVelocity = Vector2.zero;
_rb.AddForce(Vector2.up * springPower, ForceMode2D.Impulse); _rb.AddForce(Vector2.up * springPower, ForceMode2D.Impulse);
} }
if (_autoDrive) if (_autoDrive)
@ -187,8 +184,7 @@ namespace Player
private void HandleDeath() private void HandleDeath()
{ {
Instantiate(deathScreenPrefab, transform.position, Quaternion.identity); OnDeath?.Invoke();
Destroy(gameObject);
} }
private void OnTriggerExit2D(Collider2D other) private void OnTriggerExit2D(Collider2D other)

View File

@ -0,0 +1,39 @@
using System.Collections;
using Management;
using UnityEngine;
namespace State.Game
{
public class GameRunningState : MainGameState
{
public override void OnEnter(Machine machine)
{
base.OnEnter(machine);
MainStateMachine.Respawn();
MainStateMachine.PlayerMovement.OnDeath += HandleDeath;
}
private void HandleDeath()
{
MainStateMachine.StartCoroutine(DeathRoutine());
}
private IEnumerator DeathRoutine()
{
// Hide the guts
MainStateMachine.ShowDeathScreen(true);
Services.Instance.SFX.PlayOneShot(MainStateMachine.DeathSound);
// Cleanup before we remove player and fruits
MainStateMachine.PlayerMovement.OnDeath -= HandleDeath;
MainStateMachine.Respawn();
// Reregister events
MainStateMachine.PlayerMovement.OnDeath += HandleDeath;
// Wait a moment then restart the game
yield return new WaitForSeconds(2f);
MainStateMachine.ShowDeathScreen(false);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 587d831b91074411bf3a4b0270225711
timeCreated: 1777136024

View File

@ -49,7 +49,6 @@ namespace State.Game
private void HandleStartGame() private void HandleStartGame()
{ {
_mainMenuInstance.OnStartGame -= HandleStartGame; _mainMenuInstance.OnStartGame -= HandleStartGame;
Debug.Log("Starting game");
} }
} }
} }

View File

@ -1,11 +1,55 @@
using UnityEngine; using System;
using Player;
using UnityEngine;
using UnityEngine.UIElements;
namespace State.Game namespace State.Game
{ {
public class MainStateMachine : Machine public class MainStateMachine : Machine
{ {
public GameObject MainMenuPrefab => mainMenuPrefab; public GameObject MainMenuPrefab => mainMenuPrefab;
public GameObject PlayerPrefab => playerPrefab;
public GameObject FruitsPrefab => fruitsPrefab;
public Movement PlayerMovement { get; private set; }
public AudioClip DeathSound => deathSound;
[SerializeField] private GameObject mainMenuPrefab; [SerializeField] private GameObject mainMenuPrefab;
[SerializeField] private GameObject playerPrefab;
[SerializeField] private GameObject fruitsPrefab;
[SerializeField] private GameObject deathScreenPrefab;
[SerializeField] private AudioClip deathSound;
private GameObject _playerInstance;
private GameObject _fruitsInstance;
private GameObject _deathScreenInstance;
private void Awake()
{
_deathScreenInstance = Instantiate(deathScreenPrefab);
ShowDeathScreen(false);
}
public void Respawn()
{
if (_fruitsInstance)
{
Destroy(_fruitsInstance);
}
if (_playerInstance)
{
Destroy(_playerInstance);
}
var respawn = GameObject.FindGameObjectWithTag("Respawn").transform;
_fruitsInstance = Instantiate(fruitsPrefab);
_playerInstance = Instantiate(playerPrefab, respawn.position, Quaternion.identity);
PlayerMovement = _playerInstance.GetComponent<Movement>();
}
public void ShowDeathScreen(bool show)
{
_deathScreenInstance.GetComponent<UIDocument>().rootVisualElement.Q<VisualElement>().visible = show;
}
} }
} }

View File

@ -0,0 +1,31 @@
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace State.Game
{
public class StartGameState : MainGameState
{
public override void OnEnter(Machine machine)
{
base.OnEnter(machine);
}
private IEnumerator LoadGame()
{
var oldCam = Camera.main;
var handle = SceneManager.LoadSceneAsync("Game", LoadSceneMode.Additive);
if (handle != null)
{
while (!handle.isDone)
{
yield return null;
}
SceneManager.SetActiveScene(SceneManager.GetSceneByName("Game"));
oldCam?.gameObject.SetActive(false);
MainStateMachine.ChangeState(new GameRunningState());
}
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: eceabbf9f62345569805bb1a763abf24
timeCreated: 1777135622

View File

@ -1,24 +0,0 @@
using System;
using UnityEngine;
namespace UI
{
public class DeathScreen : MonoBehaviour
{
[SerializeField] private GameObject playerPrefab;
[SerializeField] private GameObject fruitsPrefab;
private float _timer;
private void Update()
{
_timer += Time.deltaTime;
if (_timer > 2f)
{
var spawnPos = GameObject.FindGameObjectWithTag("Respawn").transform.position;
Instantiate(playerPrefab, spawnPos, Quaternion.identity);
Destroy(gameObject);
}
}
}
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 2a3ba437acb54874092ae3d89c46b133

View File

@ -18,13 +18,13 @@ MonoBehaviour:
m_RenderMode: 0 m_RenderMode: 0
m_ColliderUpdateMode: 0 m_ColliderUpdateMode: 0
m_ColliderIsTrigger: 1 m_ColliderIsTrigger: 1
m_ScaleMode: 1 m_ScaleMode: 2
m_ReferenceSpritePixelsPerUnit: 100 m_ReferenceSpritePixelsPerUnit: 100
m_PixelsPerUnit: 100 m_PixelsPerUnit: 100
m_Scale: 1 m_Scale: 1
m_ReferenceDpi: 96 m_ReferenceDpi: 96
m_FallbackDpi: 96 m_FallbackDpi: 96
m_ReferenceResolution: {x: 1200, y: 800} m_ReferenceResolution: {x: 1280, y: 720}
m_ScreenMatchMode: 0 m_ScreenMatchMode: 0
m_Match: 0 m_Match: 0
m_SortingOrder: 0 m_SortingOrder: 0
@ -39,7 +39,7 @@ MonoBehaviour:
m_MinAtlasSize: 64 m_MinAtlasSize: 64
m_MaxAtlasSize: 4096 m_MaxAtlasSize: 4096
m_MaxSubTextureSize: 64 m_MaxSubTextureSize: 64
m_ActiveFilters: 31 m_ActiveFilters: -1
m_AtlasBlitShader: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0} m_AtlasBlitShader: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0}
m_DefaultShader: {fileID: 9100, guid: 0000000000000000f000000000000000, type: 0} m_DefaultShader: {fileID: 9100, guid: 0000000000000000f000000000000000, type: 0}
m_RuntimeGaussianBlurShader: {fileID: 20300, guid: 0000000000000000f000000000000000, type: 0} m_RuntimeGaussianBlurShader: {fileID: 20300, guid: 0000000000000000f000000000000000, type: 0}

View File

@ -11,6 +11,9 @@ EditorBuildSettings:
- enabled: 1 - enabled: 1
path: Assets/Scenes/MainMenu.unity path: Assets/Scenes/MainMenu.unity
guid: d9e43626d738a3f448e4acc7b2c1dfe3 guid: d9e43626d738a3f448e4acc7b2c1dfe3
- enabled: 1
path: Assets/Scenes/Game.unity
guid: cd7b38ade83933e45843d4ffed0886d0
m_configObjects: m_configObjects:
com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3} com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
m_UseUCBPForAssetBundles: 0 m_UseUCBPForAssetBundles: 0