Home [Unity] 콤보 공격 구현 방법
Post
Cancel

[Unity] 콤보 공격 구현 방법

구현 방법 ( 요약 )

  • 콤보로 이어져 있는 애니메이션 구하기 ( 저는 믹사모에서 구했습니다. )
  • 공격 모션 사이에 Animation event 추가
  • Animation event 사이에 공격 버튼이 눌렸는지 체크
    • 눌렸다면, 다음 공격 모션 실행
    • 누르지 않았다면, Idle로 돌아감
  • Animation이 끝날 때, EndCallback Animation Event를 추가하여 Idle로 돌아갈 수 있게 설정

1. 공격 모션 사이에 Animation Event 추가

  • Event는 체크 시작 함수 ~ 체크 종료 함수 가 한 쌍으로 되어 있다.

Unity_img_07

2. 공격이 가능하면, 어떤 Animation State에서도 공격 Animation이 재생되게 Any State로 연결하여 세팅

Unity_img_08

체크 시작 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 콤보 어택 체크 시작
void CheckStartComboAttack()
{
    // 콤보 공격이 계속 되는지 체크하는 boolean 변수
    isContinueComboAttack = false;
    
    // 콤보 어택이 이어지지 않는다면, 코루틴을 종료하기 위해 IEnumerator 변수 사용
    COR_CheckComboAttack = CheckComboAttack();
    
    StartCoroutine(COR_CheckComboAttack);

    // === Local Function ===
    IEnumerator CheckComboAttack()
    {
        // 공격 버튼이 눌렸는지 체크
        yield return CoroutineHelper.WaitUntil(() => Input.GetButtonDown("Fire1"));
        // 눌렸다면, boolean 변수를 True로 바꾼다.
        isContinueComboAttack = true;
    }
}

체크 종료 함수

1
2
3
4
5
6
7
// 콤보 어택 체크 종료
void CheckEndComboAttack()
{
  // boolean 변수가 false 라면,
  if (!isContinueComboAttack)
      AttackAnimEnd();    // 애니메이션을 종료시킨다.
}

결과

This post is licensed under CC BY 4.0 by the author.