Added wind sound, better death handling, more graunlar states
This commit is contained in:
parent
0a81aa6220
commit
b69a2c964c
28
.idea/.idea.SpringJam2026/.idea/workspace.xml
generated
28
.idea/.idea.SpringJam2026/.idea/workspace.xml
generated
@ -6,14 +6,22 @@
|
||||
<component name="ChangeListManager">
|
||||
<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$/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/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/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/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$/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>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -28,11 +36,13 @@
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<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/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/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/UI/DeathScreen.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/State/Game/StartGameState.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
</component>
|
||||
<component name="ProjectColorInfo">{
|
||||
"associatedIndex": 6
|
||||
@ -101,13 +111,15 @@
|
||||
<option name="useMixedMode" value="false" />
|
||||
<method v="2" />
|
||||
</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="listenPortForConnections" value="false" />
|
||||
<option name="pid" />
|
||||
<option name="pid" value="219780" />
|
||||
<option name="projectPathOnTarget" />
|
||||
<option name="runtimes">
|
||||
<list />
|
||||
<list>
|
||||
<MonoRuntime />
|
||||
</list>
|
||||
</option>
|
||||
<option name="selectedOptions">
|
||||
<list />
|
||||
@ -128,7 +140,7 @@
|
||||
<updated>1777050991106</updated>
|
||||
<workItem from="1777050993247" duration="19210000" />
|
||||
<workItem from="1777098508515" duration="3575000" />
|
||||
<workItem from="1777126978640" duration="3673000" />
|
||||
<workItem from="1777126978640" duration="11783000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
||||
@ -11,7 +11,7 @@ AudioImporter:
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
preloadAudioData: 1
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
|
||||
@ -11,7 +11,7 @@ AudioImporter:
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
preloadAudioData: 1
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
|
||||
@ -11,7 +11,7 @@ AudioImporter:
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
preloadAudioData: 1
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
|
||||
@ -11,7 +11,7 @@ AudioImporter:
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
preloadAudioData: 1
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
|
||||
@ -322,6 +322,9 @@ MonoBehaviour:
|
||||
highQualityFiltering:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
filter:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
downscale:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
|
||||
@ -14,6 +14,15 @@
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "Spawn",
|
||||
"type": "Button",
|
||||
"id": "872c318c-192f-4bba-a6d7-ba6e0c7ae7c6",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
}
|
||||
],
|
||||
"bindings": [
|
||||
@ -104,6 +113,17 @@
|
||||
"action": "Interact",
|
||||
"isComposite": 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
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@ -142,7 +142,6 @@ GameObject:
|
||||
- component: {fileID: 849756540516150458}
|
||||
- component: {fileID: 4169369283586250626}
|
||||
- component: {fileID: 3534034070345576868}
|
||||
- component: {fileID: 4576448781989217082}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
m_TagString: Player
|
||||
@ -271,7 +270,6 @@ MonoBehaviour:
|
||||
airJumpForce: 10
|
||||
spriteRenderer: {fileID: 342790821639359709}
|
||||
turnDelay: 0.08
|
||||
interactReference: {fileID: 1781555164194001046, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
|
||||
impactPauseTime: 0.2
|
||||
bouncePower: 5
|
||||
animator: {fileID: 2598533458249844269}
|
||||
@ -283,36 +281,6 @@ MonoBehaviour:
|
||||
bumpSound: {fileID: 8300000, guid: 7c28608e819f6574193756354a7974fe, type: 3}
|
||||
windSound: {fileID: 2413457592393949793}
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -10,8 +10,6 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 315795448353938977}
|
||||
- component: {fileID: 7156060875641048167}
|
||||
- component: {fileID: 6275699004517191814}
|
||||
- component: {fileID: -131508972722898766}
|
||||
m_Layer: 0
|
||||
m_Name: DeathScreen
|
||||
m_TagString: Untagged
|
||||
@ -57,113 +55,3 @@ MonoBehaviour:
|
||||
m_PivotReferenceSize: 0
|
||||
m_Pivot: 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}
|
||||
|
||||
@ -119,6 +119,218 @@ NavMeshSettings:
|
||||
debug:
|
||||
m_Flags: 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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -278,7 +490,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1469922750
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -292,6 +504,10 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::State.Game.MainStateMachine
|
||||
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
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -339,6 +555,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Management.Services
|
||||
bgm: {fileID: 1755353617}
|
||||
sfx: {fileID: 1327356649}
|
||||
inputRouter: {fileID: 1131356127}
|
||||
--- !u!4 &1671688485
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -361,12 +578,12 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1671688483}
|
||||
m_Enabled: 0
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4b256c4001284134990a2af43c375455, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Assembly-CSharp::Bootstrap
|
||||
startType: 1
|
||||
startType: 3
|
||||
gameStateMachine: {fileID: 1469922750}
|
||||
--- !u!1 &1755353616
|
||||
GameObject:
|
||||
@ -715,3 +932,5 @@ SceneRoots:
|
||||
- {fileID: 1755353619}
|
||||
- {fileID: 1327356648}
|
||||
- {fileID: 1469922751}
|
||||
- {fileID: 1131356126}
|
||||
- {fileID: 564331331}
|
||||
|
||||
@ -356,9 +356,9 @@ Camera:
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0.0009259259
|
||||
y: 0
|
||||
width: 1
|
||||
height: 0.99814814
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
@ -4523,124 +4523,6 @@ BoxCollider2D:
|
||||
m_AutoTiling: 0
|
||||
m_Size: {x: 2, y: 0.5}
|
||||
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
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -4649,7 +4531,5 @@ SceneRoots:
|
||||
- {fileID: 135794690}
|
||||
- {fileID: 118420888}
|
||||
- {fileID: 1755712273}
|
||||
- {fileID: 2062647807}
|
||||
- {fileID: 1454353602}
|
||||
- {fileID: 4089110117659577756}
|
||||
- {fileID: 219800105}
|
||||
|
||||
@ -36,6 +36,7 @@ namespace Management
|
||||
TrackType.Muted => audioSources[0],
|
||||
TrackType.Core => audioSources[1],
|
||||
TrackType.Victory => audioSources[2],
|
||||
_ => audioSources[0],
|
||||
};
|
||||
|
||||
var targetAudioSource = type switch
|
||||
@ -43,6 +44,7 @@ namespace Management
|
||||
TrackType.Muted => audioSources[0],
|
||||
TrackType.Core => audioSources[1],
|
||||
TrackType.Victory => audioSources[2],
|
||||
_ => audioSources[0],
|
||||
};
|
||||
|
||||
StartCoroutine(FadeInRoutine(currentAudioSource, targetAudioSource, t));
|
||||
|
||||
@ -23,6 +23,7 @@ namespace Management
|
||||
{
|
||||
Splash,
|
||||
MainMenu,
|
||||
StartGame,
|
||||
Game
|
||||
}
|
||||
|
||||
@ -64,8 +65,12 @@ namespace Management
|
||||
switch (startType)
|
||||
{
|
||||
case StartType.Splash:
|
||||
case StartType.StartGame:
|
||||
gameStateMachine.ChangeState(new StartGameState());
|
||||
break;
|
||||
case StartType.Game:
|
||||
throw new NotImplementedException();
|
||||
gameStateMachine.ChangeState(new GameRunningState());
|
||||
break;
|
||||
case StartType.MainMenu:
|
||||
default:
|
||||
gameStateMachine.ChangeState(new MainMenuState());
|
||||
|
||||
49
Assets/Scripts/Management/InputRouter.cs
Normal file
49
Assets/Scripts/Management/InputRouter.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/Management/InputRouter.cs.meta
Normal file
2
Assets/Scripts/Management/InputRouter.cs.meta
Normal file
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cae18a7c1c4314e4fb239ece5cef4996
|
||||
@ -16,9 +16,11 @@ namespace Management
|
||||
|
||||
// SFX service to serve as single spot SFX plays from.
|
||||
public SFX SFX => sfx;
|
||||
public InputRouter InputRouter => inputRouter;
|
||||
|
||||
[SerializeField] private BGM bgm;
|
||||
[SerializeField] private SFX sfx;
|
||||
[SerializeField] private InputRouter inputRouter;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
|
||||
@ -10,6 +10,8 @@ namespace Player
|
||||
[RequireComponent(typeof(Rigidbody2D))]
|
||||
public class Movement : MonoBehaviour
|
||||
{
|
||||
public event Action OnDeath;
|
||||
|
||||
private static readonly int Spring = Animator.StringToHash("spring");
|
||||
private static readonly int Grounded = Animator.StringToHash("grounded");
|
||||
private static readonly int Speed = Animator.StringToHash("speed");
|
||||
@ -20,7 +22,6 @@ namespace Player
|
||||
[SerializeField] private float airJumpForce;
|
||||
[SerializeField] private SpriteRenderer spriteRenderer;
|
||||
[SerializeField] private float turnDelay;
|
||||
[SerializeField] private InputActionReference interactReference;
|
||||
[SerializeField] private float impactPauseTime;
|
||||
[SerializeField] private float bouncePower;
|
||||
[SerializeField] private Animator animator;
|
||||
@ -56,21 +57,23 @@ namespace Player
|
||||
private void Awake()
|
||||
{
|
||||
_rb = GetComponent<Rigidbody2D>();
|
||||
InputSystem.actions.FindActionMap("UI").Disable();
|
||||
InputSystem.actions.FindActionMap("Player").Enable();
|
||||
interactReference.action.performed += HandleInteraction;
|
||||
interactReference.action.canceled += HandleInteraction;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.None;
|
||||
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;
|
||||
}
|
||||
|
||||
@ -112,16 +115,10 @@ namespace Player
|
||||
_airJump = true;
|
||||
}
|
||||
|
||||
Debug.Log(_rb.linearVelocityY);
|
||||
windSound.volume = Mathf.Lerp(0, 1, _rb.linearVelocityY / maxSpeedWindSound);
|
||||
windSound.volume = Mathf.Lerp(0, 1, Mathf.Abs(_rb.linearVelocityY / maxSpeedWindSound));
|
||||
_jumpPressedThisFrame = false;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
windSound.volume = 0f;
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
if (_jump)
|
||||
@ -147,7 +144,7 @@ namespace Player
|
||||
Services.Instance.SFX.PlayOneShot(springSound);
|
||||
Services.Instance.BGM.FadeIn(BGM.TrackType.Core);
|
||||
_fireSpring = false;
|
||||
_rb.linearVelocityX = 0;
|
||||
_rb.linearVelocity = Vector2.zero;
|
||||
_rb.AddForce(Vector2.up * springPower, ForceMode2D.Impulse);
|
||||
}
|
||||
if (_autoDrive)
|
||||
@ -187,8 +184,7 @@ namespace Player
|
||||
|
||||
private void HandleDeath()
|
||||
{
|
||||
Instantiate(deathScreenPrefab, transform.position, Quaternion.identity);
|
||||
Destroy(gameObject);
|
||||
OnDeath?.Invoke();
|
||||
}
|
||||
|
||||
private void OnTriggerExit2D(Collider2D other)
|
||||
|
||||
39
Assets/Scripts/State/Game/GameRunningState.cs
Normal file
39
Assets/Scripts/State/Game/GameRunningState.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/State/Game/GameRunningState.cs.meta
Normal file
3
Assets/Scripts/State/Game/GameRunningState.cs.meta
Normal file
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 587d831b91074411bf3a4b0270225711
|
||||
timeCreated: 1777136024
|
||||
@ -49,7 +49,6 @@ namespace State.Game
|
||||
private void HandleStartGame()
|
||||
{
|
||||
_mainMenuInstance.OnStartGame -= HandleStartGame;
|
||||
Debug.Log("Starting game");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,11 +1,55 @@
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using Player;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace State.Game
|
||||
{
|
||||
public class MainStateMachine : Machine
|
||||
{
|
||||
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 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
31
Assets/Scripts/State/Game/StartGameState.cs
Normal file
31
Assets/Scripts/State/Game/StartGameState.cs
Normal 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/State/Game/StartGameState.cs.meta
Normal file
3
Assets/Scripts/State/Game/StartGameState.cs.meta
Normal file
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eceabbf9f62345569805bb1a763abf24
|
||||
timeCreated: 1777135622
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a3ba437acb54874092ae3d89c46b133
|
||||
@ -18,13 +18,13 @@ MonoBehaviour:
|
||||
m_RenderMode: 0
|
||||
m_ColliderUpdateMode: 0
|
||||
m_ColliderIsTrigger: 1
|
||||
m_ScaleMode: 1
|
||||
m_ScaleMode: 2
|
||||
m_ReferenceSpritePixelsPerUnit: 100
|
||||
m_PixelsPerUnit: 100
|
||||
m_Scale: 1
|
||||
m_ReferenceDpi: 96
|
||||
m_FallbackDpi: 96
|
||||
m_ReferenceResolution: {x: 1200, y: 800}
|
||||
m_ReferenceResolution: {x: 1280, y: 720}
|
||||
m_ScreenMatchMode: 0
|
||||
m_Match: 0
|
||||
m_SortingOrder: 0
|
||||
@ -39,7 +39,7 @@ MonoBehaviour:
|
||||
m_MinAtlasSize: 64
|
||||
m_MaxAtlasSize: 4096
|
||||
m_MaxSubTextureSize: 64
|
||||
m_ActiveFilters: 31
|
||||
m_ActiveFilters: -1
|
||||
m_AtlasBlitShader: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_DefaultShader: {fileID: 9100, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_RuntimeGaussianBlurShader: {fileID: 20300, guid: 0000000000000000f000000000000000, type: 0}
|
||||
|
||||
@ -11,6 +11,9 @@ EditorBuildSettings:
|
||||
- enabled: 1
|
||||
path: Assets/Scenes/MainMenu.unity
|
||||
guid: d9e43626d738a3f448e4acc7b2c1dfe3
|
||||
- enabled: 1
|
||||
path: Assets/Scenes/Game.unity
|
||||
guid: cd7b38ade83933e45843d4ffed0886d0
|
||||
m_configObjects:
|
||||
com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
|
||||
m_UseUCBPForAssetBundles: 0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user