처음에는 AnyState에서 int인 어택콤보가 현재 몇이냐에 따라 애니메이션을 실행시키도록 했음

근데 이렇게 하니까 문제인게 OnFire를 실행시킬 때마다 숫자가 빠르게 올라가다보니

사용자는 0.1초만에 3까지 올리는데 애니메이션은 총 1초가 걸린단 말이지?


그래서 애니메이션이 순차적으로 실행되도록 강제하는 서브상태머신을 사용하기로 했어



a15714ab041eb360be3335625683746f00534520d6a7e389d63663f69c16cd6e56060257969c8e4c19ec0289d3



a15714ab041eb360be3335625683746f00534520d6a7e389d63663f69d14cd6e0c97cca6bb21ad0f0350376ec7


이게 지금 내가 구성한 베이스레이어와 서브상태머신 Attack임


S를 누르면 OnFire가 Attack을 트리거하고

int인 AttackCombo가 1에서 3까지 올라가

그런 다음 콤보 수치가 몇이냐에 따라 어택을 실행하도록 해놧음


근데 이렇게 해놓으니까 문제인게

S를 누를 때마다 트리거가 되어서 Entry -> Attack1로 가서 이게 또 실행되더라고

즉 SSS이렇게 누르면 Attack1만 3번 반복된다는 거 ㅇㅇ


찾아보니까 애니메이터의 키 프레임에서 특정 시점에 도달하면 이벤트를 발생하도록 해놨길래

이 이벤트를 기준으로 콤보 수신 상태를 열도록 하면 해결될 것 같긴 함


근데 아무리 생각해도 이건 너무 복잡한 것 같은 거야

이렇게 절차지향적인 프로그래밍이 유니티에 맞는 거임?? 아닐 것 같은데


유튜브에 검색해보니까 3~4년 전 공략글로는 어택당 트랜지션 모션을 세트로 짝지어서 

3단 공격의 경우 총 6개의 모션을 넣으라고 하는데 요즘에도 이렇게 함?