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값을 반환함.
'프로그래밍 정리 > Unity' 카테고리의 다른 글
[Unity - 유니티] GameObject.SendMessage (0) | 2014.06.06 |
---|---|
[Unity - 유니티] Quaternion.Euler(x, y, z) - Quaternion 타입의 회전값 반환 함수 (0) | 2014.06.05 |
[Unity - 유니티] Vector3.Distance - 오브젝트간의 거리 측정(Player와 적사이의 거리 측정시 유용) (0) | 2014.06.04 |
[Unity - 유니티] NavMeshAgent - 추적하는 컴포넌트 (0) | 2014.06.04 |
[Unity - 유니티] 네비게이션 - 적(AI)이 장애물로 파악하게 만들기 (0) | 2014.06.04 |