DoTween.Sequence
类全局或局部声明
例如:在unity中
private Sequence s;
void Start()
{
s= DOTween.Sequence();
}
或者 直接
private Sequence s=DOTween.Sequence();
效果等价,都作为一个全局的Tween(全局变量);
现实现如下功能:点击一个点,人物走到该点上
List<Tranform> Path;
void FollowPath()
{
//Sequence s=DOTween.Sequence(); 在声明局部变量
for (int i = 0; i < finalPath.Count; i++)
{
s.Append(transform.DOMove(Path[i].Position,0.5f).SetEase(Ease.Linear));
s.AppendCallback(() =>Clear() ) ;
s.SetId("FollowPath");
}
}
void Clear()
{
Path.Clear();
}
仅展示效果不理解原因
s为局部变量时
s为全局变量(类字段)时
调试发现for循环也是全部执行的
暂停,杀死,回调
s为全局变量(类字段)时
transform.DOPause();
transform.DOKill();
DOTween.Kill (transform);
均可暂停或杀死动画,但不响应回调( s.AppendCallback(() =>Clear() ) ; )
s为局部变量时
不可通过上述代码暂停或杀死动画,但是响应回调;
也可以通过设置 (s.SetId(“FollowPath”))Id, 通过 DOTween.Kill(“FollowPath”) 来暂停或杀死动画;
一个问题
Sequence为局部变量时,并且在每次调用时不杀死之前的动画;会出现如下效果
即动画1比动画2时间长,动画2播放后会继续播放动画1;
解决办法:如上述通过设置Id来杀死动画;