Refactor and reorganize scripts for improved structure and functionality

- Removed obsolete scripts: Chest, BreakableWall, Door, DoorInteract, and UiManager.
- Moved Chest and BreakableWall scripts to EnvironmentObjects folder.
- Introduced HammerThrower class to manage hammer throwing mechanics.
- Updated PlayerController to utilize new InputManager and HammerThrower.
- Refactored PlayerState to manage player state and item collection.
- Enhanced UI management in UiManager to reflect player item collection.
- Updated EnemyAI to remove unused movement logic.
- Adjusted KeyChest to interact with PlayerState instead of Player.
- Cleaned up code and improved event handling for item collection.
This commit is contained in:
2026-06-05 14:33:20 +03:00
parent 39294ec527
commit 7579175d24
33 changed files with 458 additions and 278 deletions
@@ -7,27 +7,23 @@ labels:
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
serializedVersion: 3
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 0
platformData:
- first:
Any:
second:
Any:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
@@ -7,26 +7,23 @@ labels:
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
serializedVersion: 3
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
Any:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
@@ -7,29 +7,26 @@ labels:
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
serializedVersion: 3
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
Any:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
userData:
assetBundleName:
assetBundleVariant:
@@ -7,26 +7,23 @@ labels:
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
serializedVersion: 3
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
Any:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
+202 -72
View File
@@ -38,12 +38,12 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
serializedVersion: 13
m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
@@ -206,14 +206,14 @@ MonoBehaviour:
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
m_TaaSettings:
quality: 3
frameInfluence: 0.1
jitterScale: 1
mipBias: 0
varianceClampScale: 0.9
contrastAdaptiveSharpening: 0
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2
--- !u!20 &1012724
Camera:
m_ObjectHideFlags: 0
@@ -794,6 +794,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!483693784 &350695916
TilemapRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -811,6 +812,9 @@ TilemapRenderer:
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -832,9 +836,11 @@ TilemapRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: -133646357
m_SortingLayer: 2
m_SortingOrder: 0
m_MaskInteraction: 0
m_ChunkSize: {x: 32, y: 32, z: 32}
m_ChunkCullingBounds: {x: 0.038461566, y: 0.015863359, z: 0}
m_MaxChunkCount: 16
@@ -842,7 +848,6 @@ TilemapRenderer:
m_SortOrder: 0
m_Mode: 0
m_DetectChunkCullingBounds: 0
m_MaskInteraction: 0
--- !u!1839735485 &350695917
Tilemap:
m_ObjectHideFlags: 0
@@ -2144,33 +2149,46 @@ Tilemap:
m_AllTileFlags: 2147483649
m_AnimatedTiles: {}
m_TileAssetArray:
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 82
- serializedVersion: 2
m_RefCount: 82
m_Data: {fileID: 11400000, guid: e0bbf4923ef35474fb2c0d4d207a85a2, type: 2}
- m_RefCount: 47
- serializedVersion: 2
m_RefCount: 47
m_Data: {fileID: 11400000, guid: b7ab33d01119add43b9f50c7d2155349, type: 2}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
m_TileSpriteArray:
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 47
- serializedVersion: 2
m_RefCount: 47
m_Data: {fileID: 1045964120, guid: 7c2d6acd22d2d0c40b84d99967afb42a, type: 3}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 82
- serializedVersion: 2
m_RefCount: 82
m_Data: {fileID: 221868806, guid: 7c2d6acd22d2d0c40b84d99967afb42a, type: 3}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
m_TileMatrixArray:
- m_RefCount: 129
- serializedVersion: 2
m_RefCount: 129
m_Data:
e00: 1
e01: 0
@@ -2189,9 +2207,11 @@ Tilemap:
e32: 0
e33: 1
m_TileColorArray:
- m_RefCount: 129
- serializedVersion: 2
m_RefCount: 129
m_Data: {r: 1, g: 1, b: 1, a: 1}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {r: 3.7734e-41, g: 3.7734e-41, b: 3.7734e-41, a: 3.7734e-41}
m_TileObjectToInstantiateArray: []
m_AnimationFrameRate: 1
@@ -2653,7 +2673,7 @@ CompositeCollider2D:
m_CompositeGameObject: {fileID: 350695914}
--- !u!50 &350695921
Rigidbody2D:
serializedVersion: 4
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -2664,8 +2684,8 @@ Rigidbody2D:
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 1
m_LinearDrag: 0
m_AngularDrag: 0.05
m_LinearDamping: 0
m_AngularDamping: 0.05
m_GravityScale: 1
m_Material: {fileID: 0}
m_IncludeLayers:
@@ -2789,6 +2809,7 @@ Canvas:
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_UseReflectionProbes: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
@@ -2808,6 +2829,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
_totalCoins: {fileID: 1923750336}
_keyIcon: {fileID: 1371746634}
_playerState: {fileID: 0}
--- !u!1 &411449914
GameObject:
m_ObjectHideFlags: 0
@@ -2842,6 +2864,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &411449916
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -2859,6 +2882,9 @@ SpriteRenderer:
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -2880,9 +2906,11 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: -133646357
m_SortingLayer: 2
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: 2032460506, guid: 7c2d6acd22d2d0c40b84d99967afb42a, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -2892,7 +2920,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &416410544
GameObject:
@@ -3159,6 +3186,10 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7047733282028940673, guid: 934a57b833e872445ac8463836f55a44, type: 3}
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7047733282028940674, guid: 934a57b833e872445ac8463836f55a44, type: 3}
propertyPath: m_Name
value: CoinChest
@@ -3354,14 +3385,14 @@ MonoBehaviour:
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
m_TaaSettings:
quality: 3
frameInfluence: 0.1
jitterScale: 1
mipBias: 0
varianceClampScale: 0.9
contrastAdaptiveSharpening: 0
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2
--- !u!114 &519420034
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -3514,6 +3545,7 @@ MonoBehaviour:
m_LayoutPriority: 1
--- !u!212 &600229404
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -3531,6 +3563,9 @@ SpriteRenderer:
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -3552,9 +3587,11 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: 9121714076949873720, guid: 8205cc62b12996346b6a4111f4c12e31, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -3564,7 +3601,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1001 &621498133
PrefabInstance:
@@ -4687,6 +4723,7 @@ GameObject:
m_IsActive: 1
--- !u!212 &923801477
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -4704,6 +4741,9 @@ SpriteRenderer:
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -4725,9 +4765,11 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: -133646357
m_SortingLayer: 2
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: 7482667652216324306, guid: f50fac695ca5b9d44b880d4f5d3358a6, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -4737,7 +4779,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!4 &923801478
Transform:
@@ -4987,6 +5028,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!483693784 &996611804
TilemapRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -5004,6 +5046,9 @@ TilemapRenderer:
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -5025,9 +5070,11 @@ TilemapRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: -133646357
m_SortingLayer: 2
m_SortingOrder: 0
m_MaskInteraction: 0
m_ChunkSize: {x: 32, y: 32, z: 32}
m_ChunkCullingBounds: {x: 0, y: 0, z: 0}
m_MaxChunkCount: 16
@@ -5035,7 +5082,6 @@ TilemapRenderer:
m_SortOrder: 0
m_Mode: 0
m_DetectChunkCullingBounds: 0
m_MaskInteraction: 0
--- !u!1839735485 &996611805
Tilemap:
m_ObjectHideFlags: 0
@@ -5047,31 +5093,43 @@ Tilemap:
m_Tiles: {}
m_AnimatedTiles: {}
m_TileAssetArray:
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
m_TileSpriteArray:
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
m_TileMatrixArray:
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data:
e00: 1.2182863e+37
e01: 0
@@ -5090,7 +5148,8 @@ Tilemap:
e32: 5.06e-43
e33: 5.09e-43
m_TileColorArray:
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {r: NaN, g: NaN, b: NaN, a: NaN}
m_TileObjectToInstantiateArray: []
m_AnimationFrameRate: 1
@@ -5175,6 +5234,7 @@ MonoBehaviour:
m_LayoutPriority: 1
--- !u!212 &999064606
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -5192,6 +5252,9 @@ SpriteRenderer:
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -5213,9 +5276,11 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: 9121714076949873720, guid: 8205cc62b12996346b6a4111f4c12e31, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -5225,7 +5290,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!4 &1043752729 stripped
Transform:
@@ -5247,7 +5311,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &1112701721
RectTransform:
m_ObjectHideFlags: 0
@@ -5901,6 +5965,7 @@ GameObject:
m_IsActive: 1
--- !u!212 &1278962561
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -5918,6 +5983,9 @@ SpriteRenderer:
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -5939,9 +6007,11 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: -1388626623
m_SortingLayer: 1
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: af5d092f65b68a4499f43779742fe6b9, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -5951,7 +6021,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!4 &1278962562
Transform:
@@ -6261,6 +6330,7 @@ TilemapCollider2D:
m_UseDelaunayMesh: 0
--- !u!483693784 &1409424115
TilemapRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -6278,6 +6348,9 @@ TilemapRenderer:
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@@ -6299,9 +6372,11 @@ TilemapRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: -133646357
m_SortingLayer: 2
m_SortingOrder: 0
m_MaskInteraction: 0
m_ChunkSize: {x: 32, y: 32, z: 32}
m_ChunkCullingBounds: {x: 0.019230723, y: 0.004314184, z: 0}
m_MaxChunkCount: 16
@@ -6309,7 +6384,6 @@ TilemapRenderer:
m_SortOrder: 0
m_Mode: 0
m_DetectChunkCullingBounds: 0
m_MaskInteraction: 0
--- !u!1839735485 &1409424116
Tilemap:
m_ObjectHideFlags: 0
@@ -6361,31 +6435,43 @@ Tilemap:
m_AllTileFlags: 2147483649
m_AnimatedTiles: {}
m_TileAssetArray:
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 4
- serializedVersion: 2
m_RefCount: 4
m_Data: {fileID: 11400000, guid: c172c8f07ca54fc4bb68b1c1845a5789, type: 2}
m_TileSpriteArray:
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 0
- serializedVersion: 2
m_RefCount: 0
m_Data: {fileID: 0}
- m_RefCount: 4
- serializedVersion: 2
m_RefCount: 4
m_Data: {fileID: 606517438, guid: 7c2d6acd22d2d0c40b84d99967afb42a, type: 3}
m_TileMatrixArray:
- m_RefCount: 4
- serializedVersion: 2
m_RefCount: 4
m_Data:
e00: 1
e01: 0
@@ -6404,7 +6490,8 @@ Tilemap:
e32: 0
e33: 1
m_TileColorArray:
- m_RefCount: 4
- serializedVersion: 2
m_RefCount: 4
m_Data: {r: 1, g: 1, b: 1, a: 1}
m_TileObjectToInstantiateArray: []
m_AnimationFrameRate: 1
@@ -6532,7 +6619,7 @@ CompositeCollider2D:
m_CompositeGameObject: {fileID: 1409424112}
--- !u!50 &1409424119
Rigidbody2D:
serializedVersion: 4
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -6543,8 +6630,8 @@ Rigidbody2D:
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 1
m_LinearDrag: 0
m_AngularDrag: 0.05
m_LinearDamping: 0
m_AngularDamping: 0.05
m_GravityScale: 1
m_Material: {fileID: 0}
m_IncludeLayers:
@@ -7013,6 +7100,33 @@ CapsuleCollider2D:
m_Offset: {x: -0.04, y: 0}
m_Size: {x: 0.55, y: 0.89}
m_Direction: 0
--- !u!114 &1627236058
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 681564194}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59cb4a98d6866124793e8758b2ec958a, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::HammerThrower
_spawnPoint: {fileID: 5855359588613562703}
_hammerPrefab: {fileID: 6648495433791226095, guid: 111653ffd63dcc64a91ceb9c5d52aa04, type: 3}
_throwSpeed: 5
--- !u!114 &1627236062
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 681564194}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 45d7bd38990996d4488582b07cbe7e40, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::InputManager
--- !u!1 &1638752927
GameObject:
m_ObjectHideFlags: 0
@@ -7567,6 +7681,7 @@ MonoBehaviour:
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@@ -7726,6 +7841,10 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7047733282028940673, guid: 934a57b833e872445ac8463836f55a44, type: 3}
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7047733282028940674, guid: 934a57b833e872445ac8463836f55a44, type: 3}
propertyPath: m_Name
value: CoinChest
@@ -8309,7 +8428,18 @@ PrefabInstance:
- targetCorrespondingSourceObject: {fileID: 3931708971405200045, guid: a7f273d812293e54d92972f62e1f0159, type: 3}
insertIndex: -1
addedObject: {fileID: 1627236057}
- targetCorrespondingSourceObject: {fileID: 3931708971405200045, guid: a7f273d812293e54d92972f62e1f0159, type: 3}
insertIndex: -1
addedObject: {fileID: 1627236058}
- targetCorrespondingSourceObject: {fileID: 3931708971405200045, guid: a7f273d812293e54d92972f62e1f0159, type: 3}
insertIndex: -1
addedObject: {fileID: 1627236062}
m_SourcePrefab: {fileID: 100100000, guid: a7f273d812293e54d92972f62e1f0159, type: 3}
--- !u!4 &5855359588613562703 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3706253573488771434, guid: a7f273d812293e54d92972f62e1f0159, type: 3}
m_PrefabInstance: {fileID: 5855359588613562702}
m_PrefabAsset: {fileID: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
-11
View File
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 0ade875a254231c4d8c43cacc7b27bfb
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4d7148405c33f2f45ae0479592e8cb6e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+17 -27
View File
@@ -3,18 +3,11 @@ using UnityEngine;
public class PlayerController : Character
{
[SerializeField]
private Transform _hammerSpawnPoint;
[SerializeField]
private GameObject _hammerPrefab;
[SerializeField]
private Sprite _regularSprite;
[SerializeField]
private Sprite _noHammerSprite;
public static Player Instance { get; private set; }
private GameObject _hammer;
private bool _isHoldingHammer = true;
@@ -23,32 +16,25 @@ public class PlayerController : Character
private InputManager _inputManager;
private PlayerState _playerState;
private HammerThrower _hammerThrower;
private void Awake()
{
if (Instance != null)
{
Destroy(gameObject);
Debug.Log("There's more than one player instance");
return;
}
Instance = this;
DontDestroyOnLoad(gameObject);
_inputManager = new InputManager();
_inputManager = GetComponent<InputManager>();
_playerState = GetComponent<PlayerState>();
_hammerThrower = GetComponent<HammerThrower>();
_inputManager.OnMovementInput += OnMovementInput;
_inputManager.OnFireButtonPressed += OnFireButtonPressed;
_inputManager.OnFire += OnFireButtonPressed;
}
private void OnEnable()
{
_inputManager.Enable();
_inputManager.OnEnable();
}
private void OnDisable()
{
_inputManager.Disable();
_inputManager.OnDisable();
}
private void Update()
@@ -59,8 +45,8 @@ public class PlayerController : Character
_isHoldingHammer = true;
}
var move = _inputManager.OnMovementInput.ReadValue<Vector2>();
base.MoveTo(move.x, isAllowVertical ? move.y : 0);
Vector2 move = _inputManager.Movement;
MoveTo(move.x, isAllowVertical ? move.y : 0);
}
private void OnFireButtonPressed()
@@ -71,15 +57,19 @@ public class PlayerController : Character
}
}
// Animation event
public void ThrowHammerObject()
{
_isHoldingHammer = false;
_spriteRenderer.sprite = _noHammerSprite;
_hammer = Instantiate(_hammerPrefab, _hammerSpawnPoint.position, _hammerSpawnPoint.rotation);
_hammer.transform.localScale = new Vector2(_hammer.transform.localScale.x * (_facingRight ? 1 : -1), _hammer.transform.localScale.y);
_hammer.GetComponent<Rigidbody2D>().linearVelocity = new Vector2(gameObject.transform.localScale.x * _hammerSpeed, 0);
_hammerThrower.ThrowHammer();
UpdatePlayerSprite();
}
private void UpdatePlayerSprite()
{
_spriteRenderer.sprite = _hammerThrower.HasHammer
? _regularSprite
: _noHammerSprite;
}
protected override void SetWalkingAnimation(bool isWalking)
{
_bonesBack.SetActive(false);
+27 -27
View File
@@ -13,39 +13,39 @@ public class EnemyAI : Character
private void Update()
{
float horizontal = 0;
float vertical = 0;
// float horizontal = 0;
// float vertical = 0;
Vector2 directionToPlayer = Player.Instance.transform.position - transform.position;
directionToPlayer.Normalize();
// Vector2 directionToPlayer = Player.Instance.transform.position - transform.position;
// directionToPlayer.Normalize();
float verticalDistance = Player.Instance.transform.position.y - transform.position.y;
// float verticalDistance = Player.Instance.transform.position.y - transform.position.y;
if (Mathf.Abs(verticalDistance) > 0.1f && (isCanClimbUp || isCanGoDown))
{
vertical = Mathf.Sign(verticalDistance);
}
else
{
if (Mathf.Abs(Player.Instance.transform.position.x - transform.position.x) < 0.1f)
{
horizontal = 0;
}
else if (directionToPlayer.x < 0)
{ horizontal = -1; }
else if (directionToPlayer.x > 0)
{ horizontal = 1; }
}
// if (Mathf.Abs(verticalDistance) > 0.1f && (isCanClimbUp || isCanGoDown))
// {
// vertical = Mathf.Sign(verticalDistance);
// }
// else
// {
// if (Mathf.Abs(Player.Instance.transform.position.x - transform.position.x) < 0.1f)
// {
// horizontal = 0;
// }
// else if (directionToPlayer.x < 0)
// { horizontal = -1; }
// else if (directionToPlayer.x > 0)
// { horizontal = 1; }
// }
if (Input.GetKey(KeyCode.T))
{ vertical = 1; }
if (Input.GetKey(KeyCode.G))
{ vertical = -1; }
// if (Input.GetKey(KeyCode.T))
// { vertical = 1; }
// if (Input.GetKey(KeyCode.G))
// { vertical = -1; }
Debug.Log($"Enemy Position: {transform.position}, Player Position: {Player.Instance.transform.position}");
Debug.Log($"Vertical Distance: {verticalDistance}, Vertical Movement: {vertical}");
// Debug.Log($"Enemy Position: {transform.position}, Player Position: {Player.Instance.transform.position}");
// Debug.Log($"Vertical Distance: {verticalDistance}, Vertical Movement: {vertical}");
base.MoveTo(horizontal, vertical);
// base.MoveTo(horizontal, vertical);
}
private float VerticalMove(float verticalDistance)
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 86cce1993173eb04daddb1edd164da94
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8251b2e2708d87d4ebc446c84ec5ed01
@@ -21,18 +21,18 @@ public class Chest : MonoBehaviour
private void OnTriggerEnter2D(Collider2D collider)
{
var player=collider.GetComponent<Player>();
if (player != null && !_isOpen)
var playerState=collider.GetComponent<PlayerState>();
if (playerState != null && !_isOpen)
{
_isOpen = true;
animator.SetTrigger("OpenChest");
switch (_treasureSO.Treasure)
{
case TreasureType.Coin:
player.AddCoin();
playerState.AddCoin();
break;
case TreasureType.Key:
player.SetKey();
playerState.SetKey();
break;
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: ded23e667cffbfd46b2633ae22204797
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: af69aa896ad8a3947947ed21a9b9cacd
@@ -13,10 +13,10 @@ public class DoorInteract : MonoBehaviour
private void OnTriggerEnter2D(Collider2D collider)
{
var player = collider.GetComponent<Player>();
if (player!=null)
var playerState = collider.GetComponent<PlayerState>();
if (playerState!=null)
{
if (player.IsHasKey())
if (playerState.HasKey)
{
_door.OpenDoor();
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 73fd9f6c116c2de4ab3d773fbb908df4
+49
View File
@@ -0,0 +1,49 @@
using System;
using UnityEngine;
public class HammerThrower : MonoBehaviour
{
[SerializeField] private Transform _spawnPoint;
[SerializeField] private GameObject _hammerPrefab;
[SerializeField] private float _throwSpeed = 10f;
private GameObject _currentHammer;
private bool _hasHammer = true;
private bool _facingRight = true;
public bool HasHammer => _hasHammer;
public void SetFacingDirection(bool facingRight)
{
_facingRight = facingRight;
}
public void ThrowHammer()
{
if (!_hasHammer)
return;
_hasHammer = false;
_currentHammer = Instantiate(_hammerPrefab, _spawnPoint.position, _spawnPoint.rotation);
float direction = _facingRight ? 1f : -1f;
var rb = _currentHammer.GetComponent<Rigidbody2D>();
rb.linearVelocity = new Vector2(direction * _throwSpeed, 0);
// Flip hammer visually
var scale = _currentHammer.transform.localScale;
scale.x = Mathf.Abs(scale.x) * direction;
_currentHammer.transform.localScale = scale;
}
private void Update()
{
// Hammer destroyed → hammer returned
if (!_hasHammer && _currentHammer == null)
{
_hasHammer = true;
}
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 59cb4a98d6866124793e8758b2ec958a
+5 -3
View File
@@ -1,14 +1,16 @@
using System.Security;
using UnityEngine;
public class KeyChest : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D collider)
{
var player = collider.GetComponent<Player>();
if (player != null)
var playerState = collider.GetComponent<PlayerState>();
if (playerState != null)
{
player.SetKey();
playerState.SetKey();
Destroy(gameObject);
}
}
}
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c118ced0938185545aca68bbd218fcc0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+30 -11
View File
@@ -1,24 +1,43 @@
using System;
using UnityEngine;
using UnityEngine.InputSystem;
public class InputManager : MonoBehaviour
{
private InputActions _inputActions;
private InputActions _actions;
public event EventHandler<Vector2> OnMovementInput;
public event EventHandler OnFireButtonPressed;
public Vector2 Movement { get; private set; }
public event Action OnFire;
private void Awake()
{
_inputActions = new InputActions();
_inputActions.Player.Movement.performed += ctx => OnMovementInput?.Invoke(ctx.ReadValue<Vector2>());
_inputActions.Player.Fire.performed += ctx => OnFireButtonPressed?.Invoke();
_actions = new InputActions();
// Movement
_actions.Player.Movement.performed += OnMovementPerformed;
_actions.Player.Movement.canceled += OnMovementCanceled;
// Fire
_actions.Player.Fire.performed += ctx => OnFire?.Invoke();
}
private void OnEnable()
public void OnEnable()
{
_inputActions.Enable();
_actions.Enable();
}
private void OnDisable()
public void OnDisable()
{
_inputActions.Disable();
_actions.Disable();
}
}
private void OnMovementPerformed(InputAction.CallbackContext ctx)
{
Movement = ctx.ReadValue<Vector2>();
}
private void OnMovementCanceled(InputAction.CallbackContext ctx)
{
Movement = Vector2.zero;
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 45d7bd38990996d4488582b07cbe7e40
+44
View File
@@ -0,0 +1,44 @@
using TMPro;
using UnityEngine;
public class UiManager : MonoBehaviour
{
[SerializeField]
private TextMeshProUGUI _totalCoins;
[SerializeField]
private GameObject _keyIcon;
private PlayerState _playerState;
// Start is called before the first frame update
void Start()
{
_playerState = GetComponent<PlayerState>();
if (_playerState != null)
{
_playerState.OnPlayerTakeItem += UpdateUi;
}
}
private void UpdateUi(object sender, TreasureType e)
{
switch (e)
{
case TreasureType.Coin:
_totalCoins.text = _playerState.TotalCoins.ToString();
break;
case TreasureType.Key:
_keyIcon.SetActive(true);
break;
}
}
void OnDestroy()
{
if (_playerState != null)
{
_playerState.OnPlayerTakeItem -= UpdateUi;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: ae8d1d59de450ae4e8be540c1a9d37ff
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: c718ee77619077344be4784233d84940
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
-11
View File
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: b3ead8e41e973dd43b93a8638ea30a36
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: c43502b5415adc044b631292348c83e8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+3
View File
@@ -1,3 +1,6 @@
using System;
using UnityEngine;
public class PlayerState : MonoBehaviour
{
public int Lives = 3;
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 907b91debf5d5864780e9466f4017f38
-29
View File
@@ -1,29 +0,0 @@
using TMPro;
using UnityEngine;
public class UiManager : MonoBehaviour
{
[SerializeField]
private TextMeshProUGUI _totalCoins;
[SerializeField]
private GameObject _keyIcon;
// Start is called before the first frame update
void Start()
{
Player.Instance.OnPlayerTakeItem += Instance_OnPlayerTakeItem;
}
private void Instance_OnPlayerTakeItem(object sender, TreasureType e)
{
switch(e)
{
case TreasureType.Coin:
_totalCoins.text = Player.Instance.TotalCoins.ToString();
break;
case TreasureType.Key:
_keyIcon.SetActive(true);
break;
}
}
}
-11
View File
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: ff6c3960de97db14f89d6633159838dc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: