feat: 캐릭터 기본 공격 시 어색한 공격 동작 제한
This commit is contained in:
@@ -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(); // 사망 애니메이션 종료 시점에 이벤트 호출
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user