diff --git a/Assets/Art/Animation/Player/KnightAnimatorController.controller b/Assets/Art/Animation/Player/KnightAnimatorController.controller index a3724193..6e554793 100644 --- a/Assets/Art/Animation/Player/KnightAnimatorController.controller +++ b/Assets/Art/Animation/Player/KnightAnimatorController.controller @@ -1,5 +1,31 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-4714013707488910386 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Attack + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 8623f5d8374514a808d458a201be217e, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!91 &9100000 AnimatorController: m_ObjectHideFlags: 0 @@ -59,10 +85,13 @@ AnimatorStateMachine: m_ChildStates: - serializedVersion: 1 m_State: {fileID: 2757263598689776561} - m_Position: {x: 320, y: 110, z: 0} + m_Position: {x: 330, y: 160, z: 0} - serializedVersion: 1 m_State: {fileID: 1194071702998055935} m_Position: {x: 320, y: 30, z: 0} + - serializedVersion: 1 + m_State: {fileID: -4714013707488910386} + m_Position: {x: 360, y: 90, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index d87b5e33..daedb9d4 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -135,7 +135,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!212 &70480905 SpriteRenderer: m_ObjectHideFlags: 0 @@ -2424,10 +2424,11 @@ Transform: m_GameObject: {fileID: 1008441667} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -1.85, y: -0.09, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 2119498365} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1008441672 @@ -2602,7 +2603,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!212 &1581354262 SpriteRenderer: m_ObjectHideFlags: 0 @@ -2689,7 +2690,7 @@ GameObject: - component: {fileID: 1794081152} m_Layer: 0 m_Name: Enemy - m_TagString: Untagged + m_TagString: Enemy m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -2862,6 +2863,180 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0de3500b3118bd04ebf644b811d74319, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1991645574 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1991645576} + - component: {fileID: 1991645575} + m_Layer: 0 + m_Name: The Knight main sprites - atlas0 #00000357_482 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1991645575 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1991645574} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 442912304861412527, guid: 0649d1685c554fb40869aba923cb5af0, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.1, y: 1.03} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1991645576 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1991645574} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: -1, w: 0} + m_LocalPosition: {x: 0.47, y: -0.13, 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: -180} +--- !u!1 &2119498364 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2119498365} + - component: {fileID: 2119498366} + m_Layer: 0 + m_Name: The Knight main sprites - atlas0 #00000357_482 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &2119498365 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2119498364} + 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: 1008441670} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &2119498366 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2119498364} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 442912304861412527, guid: 0649d1685c554fb40869aba923cb5af0, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.1, y: 1.03} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -2873,3 +3048,4 @@ SceneRoots: - {fileID: 1133366867} - {fileID: 1581354263} - {fileID: 70480906} + - {fileID: 1991645576} diff --git a/Assets/Scripts/Player/PlayerMove.cs b/Assets/Scripts/Player/PlayerMove.cs index f0a85f11..a2760dfe 100644 --- a/Assets/Scripts/Player/PlayerMove.cs +++ b/Assets/Scripts/Player/PlayerMove.cs @@ -1,3 +1,4 @@ +using System; using UnityEngine; public class PlayerMove : MonoBehaviour { @@ -49,13 +50,51 @@ public class PlayerMove : MonoBehaviour _rigidBody.AddForce(Vector2.right * h, ForceMode2D.Impulse); // 유니티6 부터 Velocity에서 LinearVelocity로 변경 - if (_rigidBody.linearVelocity.x > maxSpeed) // 오른쪽 최대 속도 + if (_rigidBody.linearVelocityX > maxSpeed) // 오른쪽 최대 속도 { _rigidBody.linearVelocity = new Vector2(maxSpeed, _rigidBody.linearVelocity.y); } - else if (_rigidBody.linearVelocity.x < maxSpeed * (-1)) + else if (_rigidBody.linearVelocityX < maxSpeed * (-1)) { _rigidBody.linearVelocity = new Vector2(maxSpeed * (-1), _rigidBody.linearVelocity.y); } + + // 플랫폼을 밟고 있을 때 + if (_rigidBody.linearVelocityY < 0) + { + Debug.DrawRay(_rigidBody.position, Vector2.down, Color.red); + RaycastHit2D rayHit = Physics2D.Raycast(_rigidBody.position, Vector2.down, 0.1f); + if(rayHit.collider != null) + { + // // 바닥에 닿아있을 때 애니메이션 변경 + if(rayHit.distance < 0.5f) + { + _animator.SetBool("isJumping", false); + } + } + } + } + + void OnCollisionEnter2D(Collision2D collision) + { + if (collision.gameObject.tag == "Enemy") + { + // 적과 충돌했을 때 + OnDameged(); + Debug.Log("플레이어가 맞았습니다."); + } + } + + void OnDameged() + { + // 적과 충돌 후 1초 무적 ( 11번 레이어 PlayerDamaged로 변경 ) + // 물리 설정에서 PlayerDamaged 레이어와 Enemy 레이어가 충돌하지 않도록 설정함 + gameObject.layer = 11; + + // 플레이어 HP 감소 + hp--; + + // 무적 표시 + _spriteRenderer.color = new Color(1,1,1,0.5f); // 플레이어 반투명 } } \ No newline at end of file diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index acda2db0..0837497f 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -3,7 +3,9 @@ --- !u!78 &1 TagManager: serializedVersion: 3 - tags: [] + tags: + - Enemy + - Platform layers: - Default - TransparentFX @@ -13,8 +15,8 @@ TagManager: - UI - Ground - - - - - + - Platform + - Enemy - - -