feat: 캐릭터 기본 공격 시 어색한 공격 동작 제한

This commit is contained in:
aube.lee
2025-02-27 21:27:22 +09:00
parent 04a5f70fa6
commit fd5452feba

View File

@@ -24,6 +24,7 @@ namespace TON
private bool isGrounded = true; // 플레이어가 바닥에 있는지 여부를 판단 private bool isGrounded = true; // 플레이어가 바닥에 있는지 여부를 판단
private bool isAttack = false; // 플레이어가 기본 공격중인지 판단단
private float lastDirection = 1f; // 기본적으로 오른쪽(1) 바라보는 상태 private float lastDirection = 1f; // 기본적으로 오른쪽(1) 바라보는 상태
private VariableJoystick joystick; private VariableJoystick joystick;
private Animator animator; private Animator animator;
@@ -35,7 +36,6 @@ namespace TON
// ingame UI의 캐릭터 stat 적용을 위한 이벤트 // ingame UI의 캐릭터 stat 적용을 위한 이벤트
public event System.Action<float, float> OnHPChanged; public event System.Action<float, float> OnHPChanged;
public event System.Action<float, float> OnSPChanged; public event System.Action<float, float> OnSPChanged;
public event System.Action OnDeathCompleted; // 사망 애니메이션 종료 이벤트
[SerializeField] private float mpRecoveryRate = 1f; // MP 회복량 [SerializeField] private float mpRecoveryRate = 1f; // MP 회복량
[SerializeField] private float mpRecoveryInterval = 3f; // 회복 간격(초) [SerializeField] private float mpRecoveryInterval = 3f; // 회복 간격(초)
@@ -66,22 +66,6 @@ namespace TON
OnSPChanged?.Invoke(currentSP, maxSP); 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() private void OnDrawGizmos()
{ {
@@ -181,6 +165,11 @@ namespace TON
public void Attack() public void Attack()
{ {
// 이미 기본 공격중인 경우 공격 제한
if (isAttack)
return;
isAttack = true;
// 공격 애니메이션 적용 // 공격 애니메이션 적용
animator.Play("Default Attack"); animator.Play("Default Attack");
@@ -193,6 +182,7 @@ namespace TON
private void DisableAttackCollider() private void DisableAttackCollider()
{ {
isAttack = false;
attackCollider.EnableCollider(false); attackCollider.EnableCollider(false);
} }
@@ -275,10 +265,12 @@ namespace TON
animator.SetTrigger("Dead Trigger"); animator.SetTrigger("Dead Trigger");
} }
// 플레이어 사망 애니메이션 종료 후 호출
public void DestroyDead() public void DestroyDead()
{ {
PlayerDataManager.Singleton.PlayerDeadEvent();
gameObject.SetActive(false); gameObject.SetActive(false);
OnDeathCompleted?.Invoke(); // 사망 애니메이션 종료 시점에 이벤트 호출
} }
} }
} }