您的位置:首页 > 移动开发 > Unity3D

Unity动画播放结束事件

2017-12-08 22:46 2346 查看
animator.SetBool("IsAttack", true);


这是我动画播放的触发条件

我播放了一个动画,希望动画播放完成后就执行一个事件

这种事件有2种添加方法,一种就是直接修改动画,在动画中添加事件

另一种以代码判断该动画播放结束

我个人更喜欢用代码解决

这是用来判断动画播放结束的代码

AnimatorStateInfo stateinfo = animator.GetCurrentAnimatorStateInfo(0);

if (stateinfo.IsName("attack")&& (stateinfo.normalizedTime > 1.0f))
{
}


我使用协程触发这个事件

StartCoroutine(WaitAttackStop());


/// <summary>
/// 攻击动画播放完后,切换回待机状态
/// </summary>
/// <returns></returns>
IEnumerator WaitAttackStop()
{
yield return null;
AnimatorStateInfo stateinfo = animator.GetCurrentAnimatorStateInfo(0);

if (stateinfo.IsName("attack")&& (stateinfo.normalizedTime > 1.0f))
{
animator.SetBool("IsAttack", false);
if (gameobjetTag=="Enemy")
{

//待机
StandBy();
}

}
else
{

StartCoroutine(WaitAttackStop());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息