인프런 커뮤니티 질문&답변

김상한님의 프로필 이미지
김상한

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

5강 캐릭터 콤보 액션

콤보액션 관련해서 질문 남깁니다

해결된 질문

작성

·

130

·

수정됨

0

디버그를 할때 EffectiveFrameCount 에 Num=4 가 지정되 있는대 이것이 4개의 항목이 안에 있다는 의미가 맞을까요?? 그리고 콤보엑션에서 다음콤보로 넘어가지 않을때에 어느부분을 봐야하나요?? CurrentCombo는 정상적으로 1에서 2로 바뀝니다

 

답변 1

0

이득우님의 프로필 이미지
이득우
지식공유자

안녕하세요.
콤보의 동작은 타이머에서 시작합니다.
각 콤보마다 애셋에서 지정된 시간만큼 타이머가 발동되는데, 지정된 시간이 흐르면 타이머에 의해 ComboCheck 함수가 수행됩니다. 먼저 이 과정이 잘 진행되는지 한번 확인봐야 할 것 같습니다.
ComboCheck 함수는 HasNextComboCommand 라는 불리언 멤버 변수 값에 따라 다음 콤보로 진행할 지 마칠지가 결정됩니다. 따라서 콤보가 안이어진다면 HasNextComboCommand 값이 거짓으로 유지되어 있을 가능성이 높습니다.
이 값은 ProcessComboCommand 함수에서 변경되는데, 이는 일반 공격 입력을 담당하는 Attack함수가 호출합니다. ProcessComboCommand 함수는 타이머가 유효한 때 호출되면 ( 콤보 입력 시간 내에 호출되면 ) HasNextComboCommand 값을 참으로 만들어줍니다.
정리하면 콤보를 시작하면 그 유효시간만큼 타이머를 발동시키는데, 타이머가 유효한 상황에 공격 입력이 들어오면 다음 콤보가 발동되고, 타이머가 종료되었는데 아무 공격 입력이 안들어왔다면 콤보를 마칩니다.
확인해보시고 도움이 되면 좋겠습니다.
어느 부분이 잘못되었는지 확인이 어렵다면 GitHub 소스와 비교해보는 것도 하나의 방법이니 참고하시면 좋겠습니다.

 

김상한님의 프로필 이미지
김상한

작성한 질문수

질문하기