State 패턴듣고 질문드립니다..
221
1 asked
안녕하세요 루키스님
저는 비전공자로서, 강의 너무 잘듣고있습니다.
이해가 아주 쏙쏙됩니다.
이때까지 제 자존심이 허락하지 않아
뭐 안되는거있으면 구글링이나 chatgpt한테 물어봐가면서 아득바득해결했는데
이건 도저히 이해가 안되네요...

제가 공격을 구현하는 코드에서 실수로 UpdateAnimation 부분을 빼고 연결해버렸습니다.
나머지는 강의랑 동일한 코드로 작성하였습니다
근데 요상하게도 나머지 기능은 정상적으로 작동하는데 공격시, 2회연속공격을 하더라구요??
아니 공격키가 먹히는 것도 요상한데 2회연속공격도 요상합니다.

공격키가 먹히는 이유는 Event Tick에 걸어준 코드 때문에
Update Input 함수에서 노란선방향으로 쭉 나가서 UpateAnimation쪽으로 가주면서
공격키를 눌러주긴했으니까 EState가 Skill값으로 받아줘서 결과적으로 공격 모션을 취한것으로 예상을하고있는데
근데 왜 2회연속공격으로 실행될까요??
예전에 말씀하시길 Tick이 frame단위로 굉장히 짧은시간이니깐
공격키가 눌린 찰나의 시간동안 저 과정이 2번 반복되서 그런걸까요??
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
루키스님의 질문에 대해 답변드리겠습니다.
루키스님의 분석이 정확합니다. Tick 이벤트는 매 프레임마다 실행되기 때문에, Tick에 연결된 로직은 매우 짧은 시간 내에 여러 번 반복 실행될 수 있습니다. 공격키를 누르는 순간부터 Tick에 의해 해당 입력이 여러 프레임에 걸쳐 반복 감지되어 “2회 연속공격”처럼 보일 수 있습니다.
이를 방지하기 위해서는 일반적으로 입력 상태를 관리하는 변수를 사용하여, 공격이 이미 실행되었는지를 체크하고 공격 애니메이션이 완료될 때까지 추가 공격 입력을 무시하는 로직을 추가합니다. 이렇게 함으로써 연속적으로 동일한 입력이 들어와도 한 번의 입력으로 처리할 수 있습니다.
예를 들어, “Skill” 상태에 진입했을 때는 추가 ‘Attack’ 입력을 무시하도록 하고, ‘Skill’ 애니메이션이 완료되거나 다른 조건(이동 상태로 복귀 등)에서 ‘Skill’ 상태를 해제하여 다시 공격 가능한 상태로 만드는 식입니다. 이 방법은 공격 동작을 더 통제하고 사용자의 의도에 맞게 게임의 반응을 만들 수 있게 합니다.
루키스님의 게임 개발 학습에 소소한 도움이 되었기를 바랍니다. 추가적인 질문이나 도움이 필요하시다면 언제든 문의해 주세요.
강의내용중 언리얼 2D게임 플리커현상질문입니다.
0
37
1
Papertilemapactor에서 타일맵이 보이지않음
2
67
2
.
0
55
1
UpdateAI부분에서 따라가는 부분 질문있습니다.
0
68
1
강의 자료 다운로드해서 실행시 공격을 해도 HpBar가 줄어들지 않습니다!
0
73
1
UI가 유닛 스프라이트에 가려집니다.
0
113
3
언리얼도 Sprite Editor 가 있나요?
0
167
3
타일맵 정보 추출 강의에 대하여 질문이 있습니다.
0
150
3
스페이스바(공격키)를 누르면 공격이 두 번 되는게 정상인가요?
0
105
2
다각도 바향 전환
0
106
1
PlayerController가 생성되지 않는 것 같아요.
0
251
2
F8을 눌러도 게임 화면에서 나오질 못해요
0
394
1
나이트가 몬스터에 부딪힐 때 멈추지 않고 뛰어넘어요...
0
214
1
sprite vs texture 수업자료 다운로드가 안됩니다.
0
229
2
유니티 MMORPG
0
288
1
타일맵, 마우스 이동 클릭
0
258
1
타일단위이동강의중....
0
369
1
카메라 관련
0
231
1
언리얼 오마카세 강의와 차이점
0
251
1
에러메세지 뜨면서 막히는데 뭐가 잘못된건지 잘모르겠어요
0
529
2
언리얼엔진 MMORPG 2D
0
1200
2
Add Call to Parent Func 궁금하게 있습니다.
0
307
1
[타일 좌표 구하기/19:30] 질문
0
314
1
캐릭터가 사라져요
0
361
1

