2014-03-27 2 views
0

"TurnAround"라는 기본 레이어에있는 애니메이션의 길이에 따라 양수해야합니다. 그것은 캐릭터의 주위를 돌고있는 애니메이션을 보여줍니다. 어떻게 처리 할 수 ​​있습니까? 그렇다면 어떻게 시간 길이를 구합니까?애니메이션 길이 가져 오기 - Unity

AnimationState가 Turnaround입니까? AnimationStateInfo입니까? 이것은 애니메이터의 전환 중 하나입니다.

애니메이터를 얻으려면 anim = GetComponent<Animator>();이 있습니다. 나는 turnAround = anim.getCurrentAnimatorStateInfo을보고 있지만 그것이 옳다고 생각하지는 않는다.

감사합니다.

답변

1

이것은 AnimationClip입니다.

가 전화 받기 :

float length = gameObject.animation.clip.length; 

편집

당신은 애니메이터를 사용하고 있기 때문에, 당신이 할 수 있습니다 :

Animator animator = GetComponent<Animator>(); 

float length = animator.animation.clip.length; 

AnimatorAnimation 상속을, 당신이 Animation의 호출 할 수 있습니다 의 멤버들. 여기에 편집이

확실히 작동 마지막 방법입니다

Animation turnBack; //assign in inspector ... float length = turnBack.clip.length; 

turnBack

는 글로벌 변수가 있도록 상단에 간다, 당신은 그것을에 애니메이션을 할당 단일성 편집자 (감찰관). 일련의 애니메이션을 사용하여 인덱스로 참조 할 수도 있습니다.

Animation[] animations = new Animation[max]; 

float length = animations[index].clip.length; 
+0

감사합니다. TurnAround 애니메이션은 어떻게 지정합니까? – user3164083

+0

스프라이트에 애니메이션이 없습니다. 애니메이션을 가지고있는 애니메이터가 있습니다. 나는 단지 애니메이션이어야 하는가? – user3164083

+0

@ user3164083 편집 내용을 확인하면 애니메이션 "TurnAround"는 'Animation' 유형의 객체이므로 애니메이션은 "TurnAround"특정 애니메이션입니다 –