부트캠프
애니메이션의 상태판단
noyyo
2023. 11. 15. 22:45
현재 애니메이터가 재생하고 있는 애니메이션의 상태를 판단해야할 때가 있다.
이럴 때 쓸 수 있는 것이 Animator의 GetCurrentAnimatorStateInfo 메소드이다.
Animator animator;
animator = GetComponent<Animator>();
AnimatorStateInfo info = animator.GetCurrentAnimatorStateInfo(0);
위와 같이 사용할 수 있다. 매개변수로 들어간 0은 애니메이터의 레이어를 의미한다.
애니메이터의 레이어가 여러개라면 상태를 받아오고 싶은 레이어 값을 넣어주면 된다.
이렇게 받아온 AnimatorStateInfo를 통해서 여러가지 정보를 얻을 수 있다.
대표적으로 사용되는 값은 normalizedTime이다. 해당 값은 현재 애니메이션의 재생정도를 보여준다.
30% 재생되었다면 0.3이다. 주의할 점으로는 트랜지션이 일어나고 있다면 이전의 애니메이션이 아니라 다음 애니메이션의 값을 돌려준다.
재생중이던 애니메이션이 0.9만큼 진행됐고 트랜지션중인 애니메이션이 0.1만큼 진행됐으면 0.1을 돌려준다.
이 값과 Tag, Name등의 비교를 통해서 애니메이터의 상태를 판단할 수 있다.