unity Animator 怎么判断一个动画播放结束

2025-03-03 18:47:54
推荐回答(2个)
回答1:

第一种方法:在动画结束帧后面加个动画事件,调用下含这个变量的函数接口不是可以了。

第二种方法:试试animator上面那个exittime。

第三种方法://获取动画层0指BaseLayer。AnimatorStateInfostateinfo=animator。GetCurrentAnimatorStateInfo(0)。


技术支持

Unity提供技术支持服务,通过线上问答、项目分析、现场培训等形式为中国开发者解决技术难题,企业级服务支持游戏上线。Unity企业技术支持团队还提供各种定制服务,包括开放大世界解决方案、游戏代码加密方案、UPR性能优化、技术美术支持等服务。

回答2:

public class Crystal : MonoBehaviour {

private Animator anim;
// Use this for initialization
void Start () {

//play动画
anim = gameObject.GetComponent();
//anim.SetInteger("MyPlay", 1);

}

// Update is called once per frame
void Update () {
transform.Rotate(0, 0, 0.2f);

AnimatorStateInfo animatorInfo;
animatorInfo = anim.GetCurrentAnimatorStateInfo (0);
if ((animatorInfo.normalizedTime > 1.0f) && (animatorInfo.IsName("MyPlay")))//normalizedTime: 范围0 -- 1, 0是动作开始,1是动作结束
{
anim.SetInteger("MyPlay", 0);//播放完成后回到待机动画
}

}
}