공부/Game Bootcamp

[TIL] #13. 통합 후 공격 속도 강화를 위한 콤보 로직 수정 : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기

Ail_ 2025. 5. 15. 14:53

 

문제 상황

기존에는 콤보 타이밍 조절의 직관성을 위해 공격 애니메이션 이벤트로 콤보 공격을 구현

이후 통합 때 공격 속도 강화 기능 추가, 그 결과 애니메이션 재생 시간이 달라져 이벤트 타이밍이 어긋나 콤보 종료 안됨

해결 방법

애니메이션 이벤트 대신 코드에서 직접 콤보 입력 타이밍을 제어하는 방식으로 수정

  • 입력 가능 시간(comboDuration) 내에 버튼 입력이 들어오면 다음 콤보로 넘어감
  • 입력 없으면 자동으로 행동 종료
  • 공격 속도도 comboDuration에 직접 반영 가능

개선 효과

  • 공격 속도 레벨이 변해도 안정적인 콤보 동작
  • 애니메이션에 의존하지 않으므로 유지보수 용이
  • 다양한 콤보 연출 확장에 유리함

 

참고자료

개념 요약

  • comboStep
    현재 콤보 단계 (1~4단계)
  • canReceiveCombo
    다음 콤보 입력 가능 타이밍 여부
  • comboQueued
    콤보 입력 타이밍에 입력 성공 여부
  • comboDuration
    다음 입력 가능한 유효 시간 ex. 0.7초 (→ 공격 속도에 따라 조정)

동작 흐름

  1. `StartAction()`
    콤보 1단 시작, 입력 대기 시작
  2. `UpdateAction()`
    - 매 프레임 타이머 증가
    - 입력 들어오면 comboQueued = true
  3. 타이머 초과 시 처리
    - 입력 O + 단계 < 최대치 → 다음 콤보 진행
    - 입력 X or 최대치 도달 → 종료

타이머 기반 콤보 시스템 흐름 다이어그램

 

느낀 점

처음엔 애니메이션 안에서 호출하니까 타이밍 수정도 더 직관적이고 편하다고 생각했으나, 이내 속도 강화가 필요해지자 한계가 금방 명확해졌다.

결국 애니메이션은 연출만, 로직은 코드에서 관리하는 게 더 깔끔하다는 생각이 들면서 명확한 책임 분리의 중요성에 대해 다시한번 느꼈다.