프로그래밍 정리/Unity

[Unity - 유니티] Animator, 현재 수행 중인 애니메이션 State 가져오기 - Animator.GetCurrentAnimatorStateInfo

주누다 2014. 6. 5. 00:11
반응형

Animator.GetCurrentAnimatorStateInfo(int layerIndex)

=> 현재 수행중인 Animator의 State를 가져옴.

=> Animator의 모든 객체는 Hash를 이용해 접근할 수 있음.

==> Hash : Integer로 되어 있는 값

=> Animator.StringToHash() 함수로 Hash 값을 추출하여 비교연산을 할 수 있음.

=> Animator내에서 Layer로 분리하여 상반신, 하반신 애니메이션을 별도로 제어할 수 있음.

=> Layer로 분리된 애니에이션을 layerIndex를 통해서 제어할 수 있음.




레이어명

=> Base Layer로 되어 있는 부분이 Animator에 레이어명




State명

=> walk, attack, idle로 되어있는 부분이 State


=====================================================================================

ex1)

if(animator.GetCurrentAnimatorStateInfo(0).nameHash == Animator.StringToHash("레이어명.State명"))

{

// 현재 수행중인 애니메이션 State 체크후 작업할 내용

}


ex2)

if(animator.GetCurrentAnimatorStateInfo(0).nameHash == Animator.StringToHash("Base Layer.walk"))

{

// 현재 수행중인 애니메이션 State 체크후 작업할 내용

}

=====================================================================================



Animator.StringToHash(string name)

=> 주어진 이름을 내부 HashTable에서 검색하여 해당 이름의 hash값을 반환함.





반응형