공부/Game Bootcamp
[TIL] #13. 통합 후 공격 속도 강화를 위한 콤보 로직 수정 : 멋쟁이사자처럼부트캠프 Unity 게임 개발 3기
Ail_
2025. 5. 15. 14:53
문제 상황
기존에는 콤보 타이밍 조절의 직관성을 위해 공격 애니메이션 이벤트로 콤보 공격을 구현
이후 통합 때 공격 속도 강화 기능 추가, 그 결과 애니메이션 재생 시간이 달라져 이벤트 타이밍이 어긋나 콤보 종료 안됨
해결 방법
애니메이션 이벤트 대신 코드에서 직접 콤보 입력 타이밍을 제어하는 방식으로 수정
- 입력 가능 시간(comboDuration) 내에 버튼 입력이 들어오면 다음 콤보로 넘어감
- 입력 없으면 자동으로 행동 종료
- 공격 속도도 comboDuration에 직접 반영 가능
개선 효과
- 공격 속도 레벨이 변해도 안정적인 콤보 동작
- 애니메이션에 의존하지 않으므로 유지보수 용이
- 다양한 콤보 연출 확장에 유리함
참고자료
개념 요약
- comboStep
현재 콤보 단계 (1~4단계) - canReceiveCombo
다음 콤보 입력 가능 타이밍 여부 - comboQueued
콤보 입력 타이밍에 입력 성공 여부 - comboDuration
다음 입력 가능한 유효 시간 ex. 0.7초 (→ 공격 속도에 따라 조정)
동작 흐름
- `StartAction()`
콤보 1단 시작, 입력 대기 시작 - `UpdateAction()`
- 매 프레임 타이머 증가
- 입력 들어오면 comboQueued = true - 타이머 초과 시 처리
- 입력 O + 단계 < 최대치 → 다음 콤보 진행
- 입력 X or 최대치 도달 → 종료
타이머 기반 콤보 시스템 흐름 다이어그램
느낀 점
처음엔 애니메이션 안에서 호출하니까 타이밍 수정도 더 직관적이고 편하다고 생각했으나, 이내 속도 강화가 필요해지자 한계가 금방 명확해졌다.
결국 애니메이션은 연출만, 로직은 코드에서 관리하는 게 더 깔끔하다는 생각이 들면서 명확한 책임 분리의 중요성에 대해 다시한번 느꼈다.