if else 같은걸로 상태변수 따라서 할 수 있는 행동 없는행동 하나하나 구분해서 하는게 정석이라는데
맞는건가요?
이렇게 하니깐 모션 가지수가 많아질 수 록 코드가 점점 길어지고 경우의수도 너무 많아지는데
댓글 5
프레임단위로 키입력 인식해서 모션 전환 필요한 경우가 어떤 걸 말하는 거져
211214(tomatoss)2025-04-14 23:32:00
답글
공격모션 도중에 점프, 점프 모션도중에 공격, 공격도중에 슬라이딩 등등 전환일어나게 하는거요
개사료애호가(diagram9375)2025-04-15 00:05:00
답글
그런 부분이면 if else + 타이머가 나을 수도 있어요
fsm이면 말씀하신대로 경우의 수가 너무 늘어나서 노가다해야 됨
저도 이동만 fsm로 하고 공격 중에 대쉬 가드 스킬 등등 다 조건문으로 제어함
211214(tomatoss)2025-04-15 03:10:00
어느 시스템을 사용하시는지는 모르겠는데 제가 사용하는 답변 드리면
일단 가정)
Player Script(ex. PlayerController.cs) -------> Animation Controller
Player Script 에서 말씀하신 조건처리를 하고, 그 정보를 넘깁니다.
저는 이런 형태로 제어합니다.
말씀하시는게 아마 모션캔슬이나 인터럽트 구현을 하고 싶은 거라고 이해했는데,
interface, event 개념으로 구현하시는게 좋을 것 같습니다.(Player 쪽에서.)
이미 알고 계시겠지만 위에 두 개념 참고해서 해보시면 될 것 같아요.
Indie 1(221.142)2025-04-15 01:17:00
답글
이게 문제가 아니라 if else 보다 fsm이 더 효율적이라고 물어보는 거라면 맞습니다.
if-else로 3개 이상의 상태로만 가도 금방 복잡해져서 말씀하신 내용이 맞습니다.
실제 구현은 class를 사용해서 하시면 쉬울겁니다. (enum으로 하면 조금 불편할거에요.)
프레임단위로 키입력 인식해서 모션 전환 필요한 경우가 어떤 걸 말하는 거져
공격모션 도중에 점프, 점프 모션도중에 공격, 공격도중에 슬라이딩 등등 전환일어나게 하는거요
그런 부분이면 if else + 타이머가 나을 수도 있어요 fsm이면 말씀하신대로 경우의 수가 너무 늘어나서 노가다해야 됨 저도 이동만 fsm로 하고 공격 중에 대쉬 가드 스킬 등등 다 조건문으로 제어함
어느 시스템을 사용하시는지는 모르겠는데 제가 사용하는 답변 드리면 일단 가정) Player Script(ex. PlayerController.cs) -------> Animation Controller Player Script 에서 말씀하신 조건처리를 하고, 그 정보를 넘깁니다. 저는 이런 형태로 제어합니다. 말씀하시는게 아마 모션캔슬이나 인터럽트 구현을 하고 싶은 거라고 이해했는데, interface, event 개념으로 구현하시는게 좋을 것 같습니다.(Player 쪽에서.) 이미 알고 계시겠지만 위에 두 개념 참고해서 해보시면 될 것 같아요.
이게 문제가 아니라 if else 보다 fsm이 더 효율적이라고 물어보는 거라면 맞습니다. if-else로 3개 이상의 상태로만 가도 금방 복잡해져서 말씀하신 내용이 맞습니다. 실제 구현은 class를 사용해서 하시면 쉬울겁니다. (enum으로 하면 조금 불편할거에요.)