原文地址Unity重置Animator到初始状态和重复播放同一个Animation - 赵青青 - 博客园
是上述文章解决了我的问题。加以总结后特此记录,谨防忘记。
若动画机与代码需要同时控制物体动作时,若动画机启用且有控制该物体,代码则无法控制
这个时候需要停用动画控制器,若停用之前状态没有把握好,就会导致再次启用后不会复原,解决方案如下:
譬如初始动画状态的名称为“RUN”;
将此动画机速度设置为0。动画有无均可,目的是为了让它一直停留在第一帧,如下图:
然后我们的代码是下面这样:
Animator Ani;
void Start()
{
ani = GetComponent<Animator>();
}
在上述操作设置好之后以下为正常销毁流程
//动画播放完之后触发动画事件
public void AniOver()
{
//播放初始动画
ani.Play("RUN");
//将动画机内的变量清零,防止下次继续该动画
ani.SetBool("变量名", false);
//最后隐藏动画机
ani.enabled = false;
}
原文作者还补充以下代码也可以使动画停在第一帧,如下图:
// 重置Animator
animator.Play(aninName, 0, 0);
animator.Update(0);
animator.enabled = false;
大概就是这样,最后再感谢原文作者!!
如有错误烦请指出,如果有更好的方法欢迎分享~
也希望能够帮助更多入门的小白(像我一样)。
最后,我的Unity版本是2020.3.16f1c1 Personal。