From 2a9a84d5d48e130b3b274bde93db23259e0c3e8b Mon Sep 17 00:00:00 2001 From: Mingu Kim Date: Fri, 18 Jul 2025 18:55:06 +0900 Subject: [PATCH] =?UTF-8?q?=ED=94=8C=EB=A0=88=EC=9D=B4=EC=96=B4=20?= =?UTF-8?q?=EB=AA=AC=EC=8A=A4=ED=84=B0=EC=97=90=20=EC=B6=A9=EB=8F=8C=20?= =?UTF-8?q?=EC=8B=9C=20=ED=94=BC=EA=B2=A9=20=ED=9A=A8=EA=B3=BC(=EB=B0=98?= =?UTF-8?q?=ED=88=AC=EB=AA=85)=20=EC=B2=B4=EB=A0=A5=20=EA=B0=90=EC=86=8C?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Player/PlayerMove.cs | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/Player/PlayerMove.cs b/Assets/Scripts/Player/PlayerMove.cs index a2760dfe..002e9392 100644 --- a/Assets/Scripts/Player/PlayerMove.cs +++ b/Assets/Scripts/Player/PlayerMove.cs @@ -80,14 +80,14 @@ public class PlayerMove : MonoBehaviour if (collision.gameObject.tag == "Enemy") { // 적과 충돌했을 때 - OnDameged(); + OnDameged(collision.transform.position); Debug.Log("플레이어가 맞았습니다."); } } - void OnDameged() + void OnDameged(Vector2 targetPosition) { - // 적과 충돌 후 1초 무적 ( 11번 레이어 PlayerDamaged로 변경 ) + // 적과 충돌 후 무적 ( 11번 레이어 PlayerDamaged로 변경 ) // 물리 설정에서 PlayerDamaged 레이어와 Enemy 레이어가 충돌하지 않도록 설정함 gameObject.layer = 11; @@ -96,5 +96,25 @@ public class PlayerMove : MonoBehaviour // 무적 표시 _spriteRenderer.color = new Color(1,1,1,0.5f); // 플레이어 반투명 + + // 적과의 충돌(피격 시) 뒤로 밀려남 + int direction = transform.position.x - targetPosition.x > 0 ? 1 : -1; // 적과의 상대 위치에 따라 방향 결정 + if (direction == -1) + { + _rigidBody.AddForce(Vector2.left * 5, ForceMode2D.Impulse); + } + else + { + _rigidBody.AddForce(Vector2.right * 5, ForceMode2D.Impulse); + } + + Invoke("OffDamaeged", 1); + } + + void OffDamaeged() + { + gameObject.layer = 10; + _spriteRenderer.color = new Color(1,1,1,1); // 플레이어 반투명 + } } \ No newline at end of file