前言
做一个跑酷游戏,用的Animation,至于为什么没用Animator,因为忘了。。。
涉及到动画的暂停和恢复,需要用animation[CurrentPlayingAnimationName(当前动画名称)].speed = 1;
和animation[CurrentPlayingAnimationName(当前动画名称)].speed = 0;
来控制动画的启动和暂停,所以就需要用到当前播放动画的名称。
解决方案
animation
变量为当前的动画组件
/// <summary>
/// 动画组件
/// </summary>
private Animation animation;
/// <summary>
/// 获取当前动画名称
/// </summary>
private string CurrentPlayingAnimation
{
get
{
//如果动画正在播放
if (this.animation.isPlaying)
//遍历动画列表
foreach (AnimationState item in this.animation)
//如果正在这个动画正在播放,则返回
if (this.animation.IsPlaying(item.name))
return item.name;
return null;
}
}
使用方法
//暂停当前动画
animation[CurrentPlayingAnimation].speed = 0;
//继续当前动画
animation[CurrentPlayingAnimation].speed = 1;
参考链接: https://answers.unity.com/questions/444500/how-to-get-current-animation-name.html