From fd5452feba6bb33522e1639922b81c19b2d6f858 Mon Sep 17 00:00:00 2001 From: "aube.lee" Date: Thu, 27 Feb 2025 21:27:22 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=BA=90=EB=A6=AD=ED=84=B0=20=EA=B8=B0?= =?UTF-8?q?=EB=B3=B8=20=EA=B3=B5=EA=B2=A9=20=EC=8B=9C=20=EC=96=B4=EC=83=89?= =?UTF-8?q?=ED=95=9C=20=EA=B3=B5=EA=B2=A9=20=EB=8F=99=EC=9E=91=20=EC=A0=9C?= =?UTF-8?q?=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/Character/CharacterBase.cs | 28 +++++++------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/Gameton-06/Assets/Gameton/Scripts/Character/CharacterBase.cs b/Gameton-06/Assets/Gameton/Scripts/Character/CharacterBase.cs index b5580301..4844dcb2 100644 --- a/Gameton-06/Assets/Gameton/Scripts/Character/CharacterBase.cs +++ b/Gameton-06/Assets/Gameton/Scripts/Character/CharacterBase.cs @@ -24,6 +24,7 @@ namespace TON private bool isGrounded = true; // 플레이어가 바닥에 있는지 여부를 판단 + private bool isAttack = false; // 플레이어가 기본 공격중인지 판단단 private float lastDirection = 1f; // 기본적으로 오른쪽(1) 바라보는 상태 private VariableJoystick joystick; private Animator animator; @@ -35,7 +36,6 @@ namespace TON // ingame UI의 캐릭터 stat 적용을 위한 이벤트 public event System.Action OnHPChanged; public event System.Action OnSPChanged; - public event System.Action OnDeathCompleted; // 사망 애니메이션 종료 이벤트 [SerializeField] private float mpRecoveryRate = 1f; // MP 회복량 [SerializeField] private float mpRecoveryInterval = 3f; // 회복 간격(초) @@ -66,22 +66,6 @@ namespace TON OnSPChanged?.Invoke(currentSP, maxSP); } - - // 경험치 추가 및 레벨업 처리 - public void AddExp(int amount) - { - bool leveledUp = PlayerDataManager.Singleton.UpdateExpericence(amount); - - if (leveledUp) - { - // TODO: 레벨업 시 처리할 내용 추가 - Debug.Log($"레벨업! "); - } - - // 경험치와 변경된 데이터를 파일에 업데이트 한다. - PlayerDataManager.Singleton.UpdatePlayerData(); - } - // 게임이 실행 중이지 않을 때도 항상 기즈모를 보여줍니다 private void OnDrawGizmos() { @@ -181,6 +165,11 @@ namespace TON public void Attack() { + // 이미 기본 공격중인 경우 공격 제한 + if (isAttack) + return; + + isAttack = true; // 공격 애니메이션 적용 animator.Play("Default Attack"); @@ -193,6 +182,7 @@ namespace TON private void DisableAttackCollider() { + isAttack = false; attackCollider.EnableCollider(false); } @@ -275,10 +265,12 @@ namespace TON animator.SetTrigger("Dead Trigger"); } + // 플레이어 사망 애니메이션 종료 후 호출 public void DestroyDead() { + PlayerDataManager.Singleton.PlayerDeadEvent(); + gameObject.SetActive(false); - OnDeathCompleted?.Invoke(); // 사망 애니메이션 종료 시점에 이벤트 호출 } } }