지난번의 문제점을 다시 되짚어보도록 하자

크게 문제는 두가지다
- 평타가 3번째까지 진행된후 다시 첫번째 평타로 돌아올때의 딜레이가 없음
- 클릭의 최소딜레이 가 없다
크게 이 두분제를 겪었다
일단 1번문제부터 해결해보도록 하자

우리는 meleeAttack에 분명 이런 타이머를 넣었을것이다

타이머 안에 타이머를 넣어서
콤보가 리셋될때 delayAttack타이머가 실행되어서 bHasDelayAttack bool변수를 false로 변경하였다
또한 평타의 switch case문에 조건문을 추가하였다

bHasDelayAttack이 false일만 실행가능하도록 만들었다
그리고 case2 즉 3번의 공격이 끝나면 딜레이가 있도록
case2일때도 true로 변경해 딜레이를 적용시켜주었다
자 그리고 남은 2번문제
인풋을 받을수있는 최소시간값을 넣어주고싶었다
두가지변수를 선언해줬다

마지막클릭시간과 클릭의 딜레이시간
lastClickTime / clickInterval
이렇게 두개를 선언후에
바인드되어있는 InputMouseLeftClick부분을 수정해주었다

currentTime에 현재 월드내의 시간을 저장후
딜레이값보다 적으면 리턴시켜버리도록 했다
그리고 마지막 클릭 시간을 현재 시간으로 갱신하기위해 즉 재사용하기위해
lastClickTime = currentTime 을 작성해주었다
그러면 우린 두가지를 적용한것이다
1. 콤보어택은 1.0초 안에 다시 인풋이 있으면 콤보어택의 다음콤보로 넘어간다
2. clickInterval 즉 0.2초라는 최소클릭시간이 만들어졌다 (광클방지)

라인트레이서 (빨간줄)이 클릭하고있다는 의미이다
확인해보면 광클을 해도 일정 딜레이를 적용해줬기때문에 정상적으로 작동한다
그런데 생각지도 못한곳에서 이상한점을 발견해버렸다

세번째 애니메이션이 작동할때 다른데를 클릭해도 움직이지않는다는것이다
흔히 보통 후딜이 너무 크다 라는 의미이다.
후딜이 크면 조작감이 너무 구리다 수정해야겠다
마우스 클릭하는곳에 제약을 걸어줬다
지금 몽타쥬가 실행되고있다면
comboNum을 0 즉 콤보스택을 삭제하고 몽타쥬를 멈춰라 제약을 걸어줬다


이 작업까지 마무리하면 플레이어는 움직일때 애니메이션이 자연스럽게 후딜이 사라지고카이팅도 가능하게 바뀌었다!
계속 플레이해보고 이상한점을 크게 두개 발견했다 (또?)
첫째 우클릭이 pressed되고있을때는 좌클릭의 meleeAttack이 나가지않는다는것

이동중에 좌클릭이 안된다 (정확하게는 멈춰서 평타를 치고 다시 움직여야하는 불편함이있다)
또다른 문제는

우클릭을 미리 선입력해놨다면 meleeAttack 공격이 나가도 무조건 실행시켜버린다는것이다
일단 이동중에 공격을하면 선입력해두었던 이동을 멈춰보도록하자
내가 고안한방식은
마우스우클릭을 하고있는동안
그리고 우클릭을 했을때
즉 움직임 값이 있으면 bool변수값 하나를 바꿔서
이동할때는 true 이동하지않을때는 false 조건을 걸어서
값이 true일때 즉 이동하고있을때는 움직임을 제약하도록했다

일단 인풋값을 봐보자
여기서 생각하지못한게있었다
보면 pressed밖에없다 누루고있을대밖에 없는데
released도 필요할꺼같아 추가해줬다

통일성을 위해 이름도 깔끔하게 통일해줬다
누루고있을때 땟을때 확인할변수

를 선언후 pressed할때 true Released할때 false로 만들어주었다
그럼 값이 true 즉 입력값이 있을때는 움직임을 멈추도록 해보자


누루고있을때와 땟을때
로그가 출력되게 추가해줬고
로그가 나오는걸 보면 변수가 잘 바뀌고있다는걸 확인할수있다

만약 좌클릭이있을때 StopMovement를 해버린다면?


수정후 선입력을 해도 이동하지않는다
수정이 잘 된 모습
이제 이동중에 공격이 안되는 문제를 수정해보자
문제는 우클릭을 누르고있을떄 (이동중일떄) 좌클릭을 눌렀을때 이다




전체적인 컨트롤러의 tick코드를 수정했다
우클릭을 눌렀을때 선입력문제를 고치자니 공격이 나가질않아서
공격하는 매커니즘을 추가해주고 1,3번공격에 후딜을 없애주었다

드디어 게임다운 조작감이 느낌이 나온다
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
Unreal 캐릭터 - 위젯애니메이션 (0) | 2025.04.04 |
---|---|
Unreal 캐릭터 - UI위젯과 동기화 (0) | 2025.04.04 |
Unreal 캐릭터 - 콤보어택 (0) | 2025.04.04 |
Unreal 캐릭터 - 소켓의 활용, 외부에셋활용, 칼들려주기, 모드의구분 (0) | 2025.04.04 |
Unreal 캐릭터 - 플레이어 마우스 이동, 입력키 바인딩, 스테이트머신 (1) | 2025.04.04 |