1.GetCurrentAnimatorStateInfo方法判断动画播放
public class Test : MonoBehaviour
{
private Animator animator;
private AnimatorStateInfo info;
void Awake()
{
animator = GetComponent();
}
void Update()
{
info = animator.GetCurrentAnimatorStateInfo(0);
if (info.normalizedTime >= 1) // 判断动画播放结束normalizedTime的值为0~1,0为开始,1为结束。
{
gameObject.SetActive(false);
}
}
}
2.在动画结束帧后面加个动画事件
3.获取动画时长
///
/// 获得animator下某个动画片段的时长方法
///
/// Animator组件
/// 要获得的动画片段名字
///
public float GetAnimatorLength(Animator animator ,string name)
{
//动画片段时间长度
float length = 0;
AnimationClip[] clips = animator.runtimeAnimatorController.animationClips;
Debug.Log(clips.Length);
foreach (AnimationClip clip in clips)
{
Debug.Log(clip.name);
if (clip.name.Equals(name))
{
length = clip.length;
break;
}
}
return length;
}