유니티 현재 실행중인 애니메이션 상태 받아오기

|


현재 수행중인 State 는 GetCurrentAnimatorStateInfo(int layerIndex)를 이용해 가져올수 있고
Animator의 모든 객체는 Hash를 이용해 접근 가능하다.

StringToHash 에 전달하는 인자는 "레이어 이름 + 점(dot) + 스테이트 이름" 규칙을 가지고 있다.


StringToHash는 반환값으로 int 형을 반환한다.->해쉬테이블에서 찾아서 반환해주므로
Start 함수에서 미리 값을 받고 비교해주는게 최적화에 도움이 된다.

ex)

int hashGoHit = 0;
void Start()
{
hashGoHit = Animator.StringToHash("Base Layer.gothit");
}

void Update()
{
  if(animator.GetCurrentAnimatorStateInfo(0).nameHash == hashGoHit)
  {
    // 처리구문.
  }
}


Trackback 0 And Comment 0