今天实现一个主角受到攻击然后屏幕颜色渐变的效果,用了下DOTween插件,它可用来做补间动画。
首先定义一个Tween类的实例用来保存动画:
private Tween tweener = image.DOFade(0, changeAlphaTime);
tweener.Pause();
然后,当主角受到攻击的时候进行播放动画:
public void ShowScreenEffectImage()
{
//设置初始透明度
Color tmpColor = image.color;
tmpColor.a = (float)(originNum * 1.0 / 255);
image.color = tmpColor;
tweener.Play();
}
然后就发现了一个问题,受到第一下攻击的时候显示正常,第二下渐变时间忽然变短,哦!晓得了,应该是当tweener动画播放的时候,再次调用Play()方法的话,上一次如果动画没有播放完,中途又更新了下透明度值,就会造成动画播放了两次的错觉,其实依旧是播放了一次,只不过中途透明度又设置成初始的了。
(勤勤恳恳的改bug。。。)
这个时候我换了个方法:ReStart(),