概述:
当用Dotween里面的To等方法对某个变量进行补间动画操作的时候,这个变量在To方法的生命周期之间是被lock锁住的。
也就是说在动画期间,这个变量无法进行额外的赋值操作。
示例:
tweenHaad = DOTween.To(() => boxTransform_test.Vector2Information, x => boxTransform_test.Vector2Information = x, data.upPerLoop, this.spanTime / 1000f).
SetEase(Ease.Linear).
SetRelative(true);
boxTransform_test.Vector2Information这个变量已经不能进行赋值操作了。
解决方法:
如果必须对boxTransform_test.Vector2Information进行操作,则可以进行如下操作
if (tweenHaad != null && tweenHaad.IsPlaying() == true)//如果前面一段动画还在播放,就杀死,进入下一段。
{
tweenHaad.Kill();
tweenHaad = null;
}
- tweenHaad.Kill();马上杀死动画,结束这个补间的协程。
- 修改boxTransform_test.Vector2Information变量。
- 创建新的动画协程tweenHaad = DOTween.To(………………)
思考与讨论:
我认为Dotween创建动画的过程是创建一个新的协程的过程,然后在这个协程里面对某个变量进行补间操作,具体没有研究,如果有懂的道友,可以在下面流言。(〃'▽'〃)