2013-04-23 6 views
1

여기에 큰 문제가 있습니다. 나는 현재 어떤 애니메이터 상태인지 알 필요가있다. 나는이 문제에 관해 많은 부분을 조사해 왔지만 메카닉 애니메이션이 너무 새롭기 때문에 그것에 대한 정보는별로 없다. 적어도 유니티 스크립트는 아닙니다. 누군가가 도움을 줄 수Unity Javascript - Mecanim 애니메이터 상태

희망,

감사합니다, 로버트 댄

답변

0

는 불행하게도, 난 JS 모르겠지만, 다음 C# 라인은 번역이 용이해야한다. 애니메이터. GetCurrentAnimatorStateInfo은 현재 애니메이터 상태를 설명하는 AnimatorStateInfo 구조체를 반환합니다. 당신이 (성능상의 이유로) 해시 애니메이터 상태의 이름을 위의 예에서 볼 그래서 당신은 특정 상태와 관련된 정수 ID를 검색하기 위해 Animator.StringToHash를 사용하는 국가의 이름을 해시해야처럼

int stateId = Animator.StringToHash("Base Layer.State Name"); 
Animator anim = GetComponent<Animator>(); 
AnimatorStateInfo currentBaseState = anim.GetCurrentAnimatorStateInfo(0); 

if (currentBaseState.nameHash == stateId) 
{ 
    //you are in stateId 
} 

.

+0

덕분에, 그게 번역하기 쉽게해야합니다 사실이다. 아직도 나는 그것이 매우 어려운 hehe라는 것을 안다. 그러나 나는 더 많이 시도 할 것이다. 결국 그것이 효과가 있기를 바랍니다! –

0

작동하지 않음 시도해보십시오. print (currentBaseState.nameHash + ""+ stateId);

그리고 애니메이션을 재생하십시오. 그들은 다르다.

0

NOVA, 나는 당신의 대답이 2 년 전임을 깨달았지만 .nameHash 대신 "전체 경로"를 사용하면 일치한다.

obl.GetCurrentAnimatorStateInfo (0) .fullPathHash == Animator.StringToHash ("자료 Layer.StateName") 당신이 대답을